Gave each entity property a type.

Gave entities convenience getters/setter for the properties so getProperties is not needed anymore.
Fixed failing test.
Angle Modulation Refactor

- Moved AngleModulation to cilib.problem package
- Extracted the bit generating function from the AM problem class
- Any ContinuousFunction can be used as a modulating function
- Added a modulating function with variable amplitude
- Added a framework to perform function sampling
- Implemented the default angle modulation sampling method
- Implemented a MinMax sampler
- Added a MinMaxAngleModulation decorator
- Removed the functionality for multiple generating functions
- Updated xml examples
- Updated test cases
- Fixed a small bug in the StringBasedDomainRegistry copy constructor

Signed-off-by: Bennie Leonard <bennie.leonard@gmail.com>
Changed AMPSO to make use of Functional Java

Signed-off-by: Bennie Leonard <bennie.leonard@gmail.com>
Fix tests

Signed-off-by: Gary Pamparà <gpampara@gmail.com>
N-queens decorator with linear penalty function
Correct the function interface used.

Signed-off-by: Gary Pamparà <gpampara@gmail.com>
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.
Update QuantumPositionProvider to have a guide provider.

Signed-off-by: Gary Pamparà <gpampara@gmail.com>
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.
Merge branch '158'
Merge branch '160'
Merge branch '176'

Conflicts:
	library/src/main/java/net/sourceforge/cilib/clustering/entity/ClusterParticle.java
	library/src/main/java/net/sourceforge/cilib/pso/particle/StandardParticle.java
	library/src/main/java/net/sourceforge/cilib/pso/velocityprovider/PreyVelocityProvider.java
	library/src/test/java/net/sourceforge/cilib/clustering/iterationstrategies/StandardDataClusteringIterationStrategyTest.java
Merge branch '179'

Conflicts:
	library/src/main/java/net/sourceforge/cilib/pso/positionprovider/binary/BinaryStaticProbPositionProvider.java
	library/src/main/java/net/sourceforge/cilib/pso/velocityprovider/ConstrictionVelocityProvider.java
	library/src/main/java/net/sourceforge/cilib/pso/velocityprovider/GCVelocityProvider.java
	library/src/main/java/net/sourceforge/cilib/pso/velocityprovider/LinearVelocityProvider.java
	library/src/main/java/net/sourceforge/cilib/pso/velocityprovider/MOVelocityProvider.java
	library/src/main/java/net/sourceforge/cilib/pso/velocityprovider/PredatorVelocityProvider.java
	library/src/main/java/net/sourceforge/cilib/pso/velocityprovider/StandardVelocityProvider.java
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.