Refactoring of Board, related tests, and fixing Search. Now everything *should* work