Input: Major refactoring of Input subsystem API

* Rename of several methods within nom::Input, nom::SDLApp
* Introduce events usage example & unit test.

* Introduce nomlib/system/events dir; all SDL2 events that are
implemented pass their data to nom::Event structs (with the intention
of supporting future APIs beyond SDL, future maintenance, etc.).

* Introduce initial implementation for finger touch & gesture events
via SDL2 API.

* Introduce initial implementation for text input via SDL2 API.

* Finish implementation of window event handling.

* SDLApp: Initial implementation of input mapping; mapping actions to
(user input) events!

* types: Introduce NOM_TIMESTAMP macro.

* Move SDLApp::poll_events to Input::poll_event as a protected virtual method.
* Replace all instances of EventType (SDL_Event) with nom::Event.
* Rename StateMachine::event to StateMachine::process_events.