Do all the recursive checking for legal neighbours in the LegalNeighboursImpl. Removed canTerminateInStepsRemaining as we can simply check is the neighbours seq isEmpty