Removal of Topology and PopulationBasedAlgorithm

Topology was a fairly poor abstraction as the neighbourhood calculation
was the only valuable contribution it provided. It was essentially
List<E> + neighbourhood function. As a result, the neighbourhood functions
have been extracted into the Topologies class and a new function alias
has been created, namely: Neighbourhood<E>. All SinglePopulationBasedAlgorithms
now have the notion of a neighbourhood function, which can be used to
determine the neighbourhood of a specific element and defaults to the
GBest topology to keep the behaviour of the old code.

PopulationBasedAlgorithm was another broken abstraction which provided no
real benefit. It merely created confusion, especially in the cases where
multiple (sub)swarms where maintained. This has been removed and now
a clear distinction between Single- and MultiPopulationBasedAlgorithms
can be found in the code.

Signed-off-by: Gary Pamparà <gpampara@gmail.com>
Working Von Neumann topology for irregular lattice structures.

Signed-off-by: Gary Pamparà <gpampara@gmail.com>
Correct off-by-1 error in lbest neighbourhood function.

Signed-off-by: Gary Pamparà <gpampara@gmail.com>
Corrections to tests.

Signed-off-by: Gary Pamparà <gpampara@gmail.com>
Add support for static neighbourhood functions in simulator.

Signed-off-by: Gary Pamparà <gpampara@gmail.com>
Corrected test function name -> lbest3() and not lbest()

Signed-off-by: Gary Pamparà <gpampara@gmail.com>
Removed remaining Topology classes and implemented speciation neighbourhood.

Signed-off-by: Gary Pamparà <gpampara@gmail.com>
Corrected build and introduced HasTopology<E>

Signed-off-by: Gary Pamparà <gpampara@gmail.com>
Simplification of the cloned initialiser.

Signed-off-by: Gary Pamparà <gpampara@gmail.com>
Remove Function and replace with fj.F

Signed-off-by: Gary Pamparà <gpampara@gmail.com>
Eclipse removed an intentional cast to double.

Signed-off-by: Gary Pamparà <gpampara@gmail.com>