An action that is associated with a component. This is used in several areas of Tapestry and is primarily an attempt
to externalize state for a component so that it can be recorded outside the object.
ComponentActions should be immutable. They are often created during one request and associated with a particular
component instance. They are then used in a later request (with an equivalent component instance).
ComponentActions are serializable (they are often serialized into Base64 strings for storage on the client).