Refactor check for clear diagonal.

I've simplified the code a bit. I think its more legible now. I still
may make some more changes in the future. I might be able to extract a
method for that for loop, but I'm having trouble deciding what to call
it and/or if it will be any cleaner.
Fix major bug in forceMove().

I wasn't updating the ChessPiece's internal state when I moved them
around the board. This made everything behave wacky.
Add error checking move().

I added a move function similar to the one in ChessPiece. It returns
true on a successful move and false for invalid ones.