Remove the string serialization of Move
Change move serialization from a string to binary encoding
Clarify the validation of enpassant capture pawn moves
No need for an extra property to access Move data
Make moves created from a board immutable
Improve the Piece api
Refactor move validation
Ensure all created moves are valid
Keep the validator function naming consistent
Reduce text where there is no loss of clarity
Fix move parsing

The movegen tests are functional again.
Improve the Move api and testing
Trim down the Piece api
Trim down on the Coordinate api
Merge pull request #60 from joichiro/movexiao

The binary encoding implemented in this pull request fits a move within two bytes, whereas the previous text encoding used five bytes.