Add Move class.
Introduce State for the history list.
Make all tests pass.
Merge pull request #4 from kasperl/moves

Introduce Move and State classes