Big changes

Restructured BlockGrid to hold BlockClasses which can hold more
information than just the state.
Updated the TetrisBoard to be able to update the board.