Moved the implementation of updateVelocity/Position to the algorithms.

updateVelocity and updatePostion now simply updates those properties
with given arguments. It's now up to the algorithms to calculate the
new positions/velocities and send this information to the particles.
updatePosition still automatically updates the previous solution.

In most cases, this means the iteration strategies have to directly
access the velocity/position providers. In the case of the clustering
algorithms, the change is a bit more drastic.

Two ClusterParticle unit tests have become obsolete. A minor
adaptation to one of the unit tests in StandardDataClusteringIteration
StrategyTest should cover for the loss of the two unit tests.
Moved the update methods up in the inheritance hierarchy.
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.