Separate current tween state from component tween state

Previously, all tweens shared a tween state which was bound to the target
component. Now, every tween maintains its own state internally, and merely
initializes its state based on the shared state (giving priority to the actual
component state).

I think this addresses GH-3, but I guess we'll need a bit more real world
testing to know for sure.