More clean up work on Property Tree feature

* Relocate duplicate_string from Value to its own implementation file;
system/helpers.[cpp|hpp].

* VString: Swap out std::string with const char* for potential
performance gains; we can check for nullptr instead of length now.

* Implement copy & swap idiom in Value class.

* Fix unserialization err in RapidXmlSerializer due to the
parse_declaration_node xml_doc flag having been recently enabled;
the err manifested itself by creating a null object node where the
declaration array would have been if we had handled it.

* Replace most all instances of nom::Object & nom::Array usage with
nom::Value.