Redo mostly works

+~~~~~~+
| TODO |
+~~~~~~+
  * Make special moves (castling, en passant, promotion) able to
    be redone. This first requires that undo be done correctly.
undo AND REDO + revamped board + better help

TODO:
    rewrite for cleaner code
    add special moves for good
    make sure undo doesn't crash after undoing castling
    make sure undo always works

    perhaps add log in soon...