Added clearAllCentroidDataItems to CentroidHolder

This method was re-implemented in several places. Now it is in one
place.
Removed local distance measure from assignDataPatternsToParticle.

Most algorithms based on SinglePopulationDataClusteringIt... would
want to use the same distance measure throughout the algorithm.
StandardDataClusteringIterationStrategy now uses assignDataPatternsToParticle.

The pattern assignment code is exactly the same as the code in the
parrent class.
Moved assignment of pattern to centroid the quantisation error problem.

By moving pattern assignment to QuantisationErrorMinimisationProblem,
a lot of duplicate code is removed.

Moved SlidingWindow to QuantisationErrorMinimisationProblem to reduce
specialised/duplicate code.

Fixed bug in StandardDataClusteringIterationStrategy with regards to
the order of particle operations. Fitness should be calculated after
movement and pbest updates after that.
Moved globalGuideProvider out of ParticleBehavior.

This guide provider now has to be set in the velocity providers
(and a few other places) where it is being used.

Related methods were removed from Particle and AbstractParticle.
Moved localGuideProvider out of ParticleBehavior.

This guide provider now has to be set in the velocity providers
(and a few other places) where it is being used.

Related methods were removed from Particle and AbstractParticle.

Some code cleanup.
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.
Added behaviour to Entity/AbstractEntity.

The behaviour is effectively a per-entity single algorithm iteration.
The idea is that all algorithms will eventually be implemented as
behaviours and an entity's type is determined by the behaviour
assigned to it.

ParticleBehaviour is removed, as it is now obsolete.

Added StandardParticleBehaviour. This is the behaviour most common
in the PSO field.

Modified a few of the PSO iteration strategies to use performIteration
in StandardParticleBehaviour.

Modified much code to use the new StandardParticleBehaviour in much
the same way they used ParticleBehaviour.

Updated the XML files to use the new Behaviour.
Behaviour should not be cloned inside AbstractEntity.
Fixed xml files.

Boundary constraints has to be set inside StandardParticleBehaviour.
Moved fitness evalution from iteration strategies to behaviours.

Fitness calculator is now set in AbstractBehaviour rather than
AbstractEntity.
calculateFitness has been replaced by updateFitness, which forces
the fitness to be calculated externally. Code that calls calculate-
Fitness has been changed accordingly in many places.

Added DoNothingBehaviour. This acts mostly as a stopgap for algorithms
that do not yet have behaviours. Also added this behaviour in the
constructors of entities that need it.