Re-organize unit tests subdirectory

* The tests directory now has its own dedicated include and src
directories for what will hopefully be better long-term organization
of its layout.

* The build toggling of each individual test has been moved back to
tests/CMakeLists.txt for central ease of access.
Introduce functions for getting the current engine version

* Introduce auto-generated source files in nomlib's root CMakeLists.txt
for obtaining the current git revision number; this can be used for
recording the version number used for generating configuration
files.
Refactor clock functions to use STL impl on both OSX & Windows

* Make nom::time function accept std::strftime formatting strings
and introduce nom::time() && nom::timestamp() functions for
convenience defaults.
Fix the path delimiter string used on Windows
Introduce directory creation & removal methods

* Introduce ::is_file, ::mkdir, ::recursive_mkdir, ::rmdir methods
on all supported filesystem back-ends.

* Unit tests for ::mkdir, ::recursive_mkdir has been added.