Add spec for a Board with no piece's specified
Add spec for Board containing a piece when it's being given to it
Add spec for a Board containing all piece's given
Add Board object with apply method
Add spec for safe position on an empty Board
Override equals on Position
Add spec for considering positions a piece on the Board can move to as unsafe
Remove redundant imports
Add CanMoverBy trait
Make Piece a CanMoverBy
Delegate from Piece's canMoveBy to their companion objects
Move canMoveBy implementation to Piece from it's subclasses
Add PieceKind trait
Drop new for Piece creation in PieceSpec
Add spec for safePlacesFor of empty Board
Add spec for safePlacesFor taking into account where existing pieces can move to
Add spec for a Board knowing not to put a new piece where it could take an old one
Remove specs for non-public behaviour of a Board
Add spec for placing a new piece anywhere when the Board is empty
Add spec for not adding a piece to a Board with no safe positions