Changed how getMovable works

Pieces are now entirely responsible for determining where they can move
to, and instead of board having to remove blocking or friendly pieces,
the pieces themselves will now do that with the help of a pointer to the
board. I believe this is a more solid design.