Changed bitfield from a boolean[] to byte[]

The largest piece index can be 2^32, so a boolean[] of that size will
not work. Thus, bitfield is now a byte[] wrapped by a class for useful
methods like hasPiece() and setPiece().