Address issue #554

1. Make sure `Animation.destroy` unsubscribes from all events it subscribes to in the constructor.
2. `AnimationViewModel` should throw an exception if a `ClockViewModel` instance is not passed in.