Various updates

-Add tests
-Improve evaluation
-Add castling move
-Refactor