Separated move and piece into their own files, so that I can wrap them better once they're bitfields.

Added the possibility of a move that is both a promotion and a capture (which really messes with my idea for encoding it into 32 bits :( )

Added pawn captures and en-passants.
Many things.

Gave Board a legit way of putting pieces down.

Added "constructors" for pieces and moves.

Made Board correctly generate promotion and promo-captures.

Sketched out unit tests for Board, Piece, and Move (I'll actually do them tomorrow, I promise).