Real-parameter Black Box 2009 Optimization Functions.
Made crossover guide provider work like it used to and not replace the gbest.
A few niching changes/additions

- Improved performance of speciation topology.
  Calculating the neighbourhood of a particle using the speciation topology
  is very CPU intensive and it generally only has to be done once iteration
  depending on usage. A perCall property is added to caluclate it for every
  call of neighbourhoodOf when true or once per iteration when false.
- Added a change detection strategy based on function evaluations.
Merge pull request #135 from filinep/xpso-changes

Crossover guide provider should not replace gbest.
Merge pull request #138 from filinep/speciationFix

A few niching changes/additions
Merge pull request #128 from robgarden/bbob2009

Real-parameter Black Box 2009 Optimization Functions (Noise free).
Added the CascadeHiddenNeuronCorrelationProblem and unit tests.

This new class serves as the a problem to be used in optimisation
during the correlation phase of the cascade-correlation algorithm.

Some classes needed a getClone method and copy-constructor.
Changed the usage of shuffle operators in NNTrainingProblem.

Two different shuffle operators are used during initialisation and
evaluation.

Now, by default, no shuffle is performed during evaluation. Since
most of our algorithms use batch-evaluation shuffling only wastes
time.

Some fixes to copy-constructors added.
Added CascadeOutputLayerTrainingProblem and unit tests.

This problem is used during the output training phase
of the cascade-correlation algorithm.
Small thing that I forgot to commit.
Added correlation phase of cascade-correlation algorithm.
Added output phase of the cascade-correlation algorithm.
Some cleaning and refactoring in CascadeCorrelationAlgorithm.
Added CascadeNetworkWeightEvaluationCount and unit tests.

This measurement is used to estimate the amount of computation
performed to evaluate the NN in the cascade correlation algorithm.
Some cleanup and refactoring.

Superfluous methods removed.

CascadeHiddenNeuronCorrelationProblem and CascadeOutputLayerTrainingProblem
now must be initialised by CascadeCorrelationProblem rather than doing it
automatically.

CascadeHiddenNeuronCorrelationProblem and CascadeOutputLayerTrainingproblem
now calculates domains everytime they are initialised rather than everytime
getDomain is called.

CascadeCorrelationAlgorithm now only tries to set up
CascadeOutputLayerTrainingProblem once.

Some more unit testing code added to CascadeCorrelationAlgorithmTest.
Cascade-correlation problems now use fanin to determine domain.

Also fixed minor bugs in unit tests.