types.hpp: Introduce NOM_STUBBED macro
Refactor JSON module

* Introduce nom::Value & supporting classes
* Combine nom::JSON::FileReader && nom::JSON::FileWriter into
nom::JsonSerializer.
* Introduce nom::JsonCppSerializer class
* Rename nom::JSON::Value class to nom::JsonCppValue
* Removal of json/config_json.hpp
* types.hpp: Introduce NOM_DASHED_ENDL macro
* Move NOM_STUBBED macro from types.hpp to config.hpp
examples/sprite_sheets: Use cursors for both input & output tests
SpriteSheet: Use nom::Value for file serialization
src/CMakeLists.txt: Add RenderWindow.cpp & GrayWindow.cpp

This corrects a mishaps with me forgetting to merge in some changes
from feature/GUI into feature/dev & feature/JSON until late -- I
think...
SpriteSheet: Introduce empty method
examples/sprite_sheets: Re-enable faces test & general clean up

	General clean up:
* Comment out un-used var RESOURCE_SPRITE_SHEET
* Make OUTPUT_SHEET_FILENAME an array variable for both faces & cursors
tests.
* Use a for loop for our tests.
VString: Implement proper sorting of values when using obj map container

This corrects a sorting bug found within SpriteSheet & faces.json when
objects above 99 are created -- ex.: 110th object was being written
the 10th object. Everything read back into TTcards was thrown off by
exactly 11 objects.

	VString:
* Introduce copy constructor & copy assignment operators
* Use initializer lists where applicable
* Introduce index_ class var & index getter method
* Set value_ & index_ class vars when operator[] overload is called.

	ValueIteratorBase:
* Clean up (remove) a few unused code fragments.
* Implement logic for the return of an index value when the object's
string value is empty (see also: VString::index).
VString: Rename method value to c_str