CMakeLists: Introduce separated compilation units

This commit introduces the initial separation of nomlib into stand-alone
compilation units; eventually, an additional option will be introduced
that allows for building these units as separate dynamic library files.
CMakeLists: Introduce separated compilation units

This commit introduces the initial separation of nomlib into stand-alone
compilation units; eventually, an additional option will be introduced
that allows for building these units as separate dynamic library files.
Input: Initial refactoring of Input subsystem interface

* Rename of several methods within nom::Input
* Update examples/app/app.cpp to reflect API changes in the Input
subsystem.
* Introduce events usage example & unit test.
* Introduce window icon for examples/events.cpp app.
ExamplesTemplate.cpp: Update to reflect API changes in feature/Input