Introduce unit testing files for Property Tree

* RapidXmlSerializer, JsonCppSerializer & Property Tree unit
tests (using GTest).

* Remove examples.cpp; our unit tests have replaced this file.

* Introduce several new json input files for future testing.
Fix serializing bug affecting values

Prevoiusly, we were getting blank elements
Addtional refactoring of Value & RapidXmlSerializer interfaces

  ValueBaseIterator:
* Remove ArrayValues from type enumeration.
* Implement ::index method

  RapidXmlSerializer:
* Return boolean false if top-level Value node is an array (checked within the write method).

* Clean up the iteration loop inside the write method; the loop is now
a singlular.

  RapidXmlSerializerTest:
* Remove SerializeInvalidInput unit test.
* Re-enable all tests that were marked DISABLED
* Introduce SerializeXMLTestDocumentOne (adapted from Resources/examples/xml/test_one.xml).
tests/CMakeLists: Rename of XML unit test source files

RapidXmlSerializer.cpp -> RapidXmlSerializerTest.cpp
RapidXmlDeserializer.cpp -> RapidXmlDeserializerTest.cpp
Re-organization of PTree & serializer project files

* Separate the serialize & deserializing interface classes.
* Rename ISerializer into IValueSerializer.
* Introduce IValueDeserializer interface.
* Rename unserialize to deserialize.
* Relocate Features enum to serializers/serializers_config.hpp; broken in
half & renamed to SerializerOptions & DeserializerOptions.
* Relocate Property Tree source files to top-level sources dir 'ptree'.
* Relocate 'json' & 'xml' source files to top-level sources dir 'serializers'.

* Consolidate top-level 'json.hpp', 'xml.hpp' into 'serializers.hpp'

* Move serializer unit tests from 'json', 'xml' dirs to 'tests/serializers'

* Serializer options enum has been temporarily removed.