Extract all Reversi logic into it's own file.
This makes the rest of the engine a lot simpler. This patch doesn't fully integrate the new logic but runs it in parallel with the old one with plenty of checks to see that they are equivalent. And it seems that they are.
Showing with 666 additions and 80 deletions