Changes to Actions

Actions are now added to the ActionUpdaters instead of Entities, and also passed directly to ActionLogic implementations.
This change is so updating of action logic can be made more fine grained instead of global. Actions will be able to control
their own update timing instead of relying on a delta time being passed from GameContext. To allow this, GameContext will
lose it's timer, and it will be added to Action objects instead.
Another bonus is that through the Action object, access to the owner Entity is preserved, and also the access to the
Actions target (or targets when using a Space object) is gained, which is useful for Actions that need a target for their
execution, such as collision detection and response.
Adds copy and assignment for Timer class.