All move validation is good except en passant

All moves that are valid work (except en passant) and all
invalid moves are not accepted.

Undo and redo also work perfectly now. That took a few commits
too many.

+~~~~~~~+
| FIXES |
+~~~~~~~+
    * move validation for moves in between
    * bug fixes for undo/redo

+~~~~~~+
| TODO |
+~~~~~~+
    * finish move validation (en passant)
    * make game saveable
    * branching of above: turn game into pgn for transport
    * create an AI that plays against you (easier said than done)
    * create log-in
    * make it such that only logged-in person can play game
Check and check mate sort of works

Needs a make over... probably over the weekend.