Initial (very incomplete) implementation of a draughts game.

Defined a basic GameState (board and next player), tested
initialisation.
Added initial code to perform Moves.

Just checks for some obvious and easy error conditions. Doesnt actually
moves pieces or updates board state yet.
Made GameState return a result object instead of throwing exceptions for
illegal moves.
Added code to allow for normal moves, not jumps.
Moved some game logic into a board class that i've made easily mutable
for testing.
Added ability to make jumps.