pure nothrow

Working on finishing up the move generation for the not-in-check case
and found that the string mixin template in bitboard.d can be made pure nothrow
if it uses enum (which is better anyways). So went through the codebase and
added it in where possible. At the moment I don't think const on the return
values in Move and BoardStatus was what I was looking for (the result value
should be mutable). Still not fully clear on what it meant, but it was used
before to get the toString functions to compile (i.e. its return value was const).

Added knight and basic pawn move generation.