Added keyboard support

`Keyboard` is a singleton that handles keyboard input for us. A `KeyListener` is added to the `JFrame` and then all key input goes through `Keyboard`

@adykstra1406 check this baby out