Added a LegalNeighboursImpl which we will migrate to using for fetchLegalNeighbours
can use neighbours that are already DI'd
moved allLegalNeighbours into companion Object
IoC LegalNeighbours