Move individual Neighbourhood functions to separate classes.

The simulator is a serious issue at the moment, resulting in this
rollback of some of the neighbourhood function changes.

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