Refactored the refactoring ClusterParticle.

Added velocity and position providers which now holds the
implementation that was once in the updateVelocity and
updatePosition methods of ClusterParticle.

The PositionProvider and Velocity provider now makes use of
StructuredType to allow for velocities/positions types other
than Vector.

Brought back the testUpdateVelocity and testUpdatePosition unit
tests in ClusterParticleTest. However, they now test the velocity/
position providers instead.