Making state a smart object as opposed to an enum

Means a shared reference to state for animation controls
Let animation controls register callback functions with the state object

This is a more functional approach for having the animation controls update
themselves based on animation state change. They register a callback with the
AnimationState object and when its state is changed it calls each of its
observers.
Renamed speedUp and slowDown buttons to include type

Other animation panel controls have their type in their name, have renamed
these two to be consistent, based on review feedback.
Merge pull request #399 from aodn/issue-284-animation-state-refactor

Issue 284 animation state refactor