MAJOR input and application layer changes

1. Input events are reimplemented using unions
2. Application layer interface added, can now bind another application
layer (Ex. Editor) to NLE
3. Input Supply interface added, can now bind another input supply (Ex.
Editor) to NLE
4. NLEGlfwInputMap relocated to Application folder
5. NLECeguiInputMap relocated to GUI folder
6. InputListener, WindowListener, and ClipboardListener were removed and
replaced with a single simple InputEventListener interface
7. NLEGlfwApplicationLayer now inherits NLEApplicationLayer and
NLEInputSupply
8. Input Processor was rewritten to use the new input event system
9. NLEGuiManager was rewritten to use the new event system
10. ApplicationLayer and InputProcessor folders were renamed to
Application and Input respectively to represent their purpose more
accurately