Added TinyXML-2 directly from their git

v2: Tinyxml2 CMakeLists.txt added
v3: Removed unused tinyxml2 files
Removed third_party/tinyxml
Replaced all occurrences of tinyxml, with tinyxml2 equivalents. Also changed code logic
Changed line 308 to tinyxml2
Changes to CMakeLists.txt files
Added changes to make tinyxml2 compile and run
Made tinyxml2 use a better CMake system
Fixed tinyxml2 CMakeLists file
Applied patch discussed on the pull request