Rewrote the input class.

It has been almost completely rewritten.
It now takes advantage of GLFW's input callbacks.

Different types of key events can now be detected as well.

So in theory, no matter what the frame rate, it shouldn't miss any key
presses.