examples/CMakeLists.txt: Fix missing cursors.json resource for app ex

* Copy JSON resources over when building app example; this corrects
the file not found err for cursors.json.
Fix bug where invalid context occurs when using multiple Window objs

* RenderWindow: Fix a bug that occurs when multiple RenderWindow
objects are created & destroyed, such as in the case of GTest and SDL2;
see also: tests/gui/VBoxLayoutTest.cpp.
  The current context (a static var) must be set every time (regardless
of previous initialization, if any) upon creation of the window object,
otherwise we lose track of state.

* RenderWindow: The current rendering context is now freed upon
RenderWindow's destruction. This is the proper implementation,
I *think*.
TrueTypeFont: Output more descriptive err on ::load failure

* Add err output from SDL2_ttf when ::load failure is possibly due to
SDL2 & friends.
FileInterfaceTest: Introduce File::extension unit testing
Update documentation / comments
CMakeLists.txt: Copy generated docs to dist image only if enabled

* The CMake variable NOM_INSTALL_GENERATED_DOCS can is used to control
the behavior of copying generated documentation -- using 'make docs'
or alike -- with a default of OFF (do not copy to dist image,
i.e.: OS X framework bundle).
	The time saved in not copying the resources can be quite
significant when you are issuing rebuilds of the engine frequently
(such as when developing a new feature).
Introduce helper script bin/gen_docs.sh
system.hpp: Add public header file system/resource_handlers.hpp