travis-ci: Remove use of branch whitelists
nomlib.sublime-project: Clean up stupid shit
Introduce template file for nom::VisualUnitTest
Introduce VersionInfo struct && helper funcs

This feature allows us to easily convert version strings to integer
form (ergo, the VersionInfo struct).

* VersionInfoTest.cpp: Introduce unit test.

* version.hpp.in: Replace NOMLIB_VERSION_MAJOR, NOMLIB_VERSION_MINOR,
NOMLIB_VERSION_PATCH macros with NOM_VERSION (a const VersionInfo).

* version.hpp.in: Remove ::major_version, ::minor_version and
::patch_version functions; these are now accessed through NOM_VERSION
struct.

* version.hpp.in: Remove NOM_VERSION, NOM_REVISION macros.

* config.hpp.in: Remove inclusion of version.hpp header file; this is
necessary to prevent a circular dependency that is created by the fact
that version.hpp includes config.hpp (we need types.hpp in
version.cpp).
Toggle all build units, examples && tests on
Refactor how we obtain git revision info

Introduce GetGitRevisionNumber.cmake -- get top git rev number; use of
the GetGitRevisionDescription module has been removed due to wrong
library version output from `git describe` when using our git branching
strategy -- also known as Vincent Driessen’s "Git branching model".

In short, the problem is introduced during the "Finishing a release
branch" section of the model, when we create our release tag. The
algorithm `git describe` uses to determine the "nearest" tag is, I
believe, the root cause of the problem. It's especially worth mentioning
that the problem only occurs on non-HEAD branches -- i.e.: development
branches, such as dev or feature/<name>.

Full problem description: http://www.xerxesb.com/2010/git-describe-and-the-tale-of-the-wrong-commits/

* bin/build-deps.sh: Replace `git describe` with `git rev-parse HEAD`