Add AbstractBoardValidator to unify shared code between FindBoardErrors and ValidateConstellation
Implement FindBoardErrors and add tests. Make error demand more precise causes. Improve documentation