Get Puzzle.getFarthestValidCellInDirection ready for skipFirstBlackCells
Add skipFirstBlackCells parameter in Puzzle.getFarthestValidCellInDirection
Add PuzzleManager.getSquare
Context-sensitive ctrl/option+backspace

skipFirstBlackCells depends on whether current cell is empty