sealed class AnimationVector
AnimationVector class that is the base class of AnimationVector1D, AnimationVector2D,
AnimationVector3D and AnimationVector4D. In order to animate any arbitrary type, it is
required to provide a TwoWayConverter that defines how to convert that arbitrary type T to an
AnimationVector, and vice versa. Depending on how many dimensions this type T has, it may need
to be converted to any of the subclasses of AnimationVector. For example, a position based
object should be converted to AnimationVector2D, whereas an object that describes rectangle
bounds should convert to AnimationVector4D.