It's an input and not a forward range
again
Fix Move

1) A piece value can fit in a nibble. The mapping sizes were wrong.
2) The initial values for Piece and Coordinate were wrong.
   They should match EmptyPiece and UndefinedCoordinate.
Idiom for move basic move generation

generateMovesForBlack generates psuedo-legal moves for black.
A corresponding movegen for white will be a mirror image of the one for black.

1) Added bit operations to Bitboard
2) Added an InputRange interface to Bitboard to make iteration of contained pieces possible
3) Added constructors to Move
4) King movegen is split into capture and noncapture generation
5) Move generation is a basic flood-fill algorithm
6) Added basic bitboard operations to Board to assist with move generation