Converted Bitboard from a structure to a basic type

Bitboard is now an alias to ulong. This memory model is easier for me to understand
where the costs are. Additionally improved the LSB routines after discovering core.bitop.
Using a string mixin to reduce redundancy in the floodfill routines.

I wanted to make all of the floodfill functions 'pure nothrow'.
However, it appears that bug 6169 (http://d.puremagic.com/issues/show_bug.cgi?id=6169) is the
problem that I am running into. The compiler is preventing me using a string mixin inside
the pure functions, mistakenly flagging such code as having side effects.