Polymorphic file stream tiny xml

As discussed in issue #643, this pull requests aims to modify the TinyXML library in a way that doesn't affect current behaviour, but makes it possible to use FileStreams for working with the xml files, which is necessary to work with T3D's virtual file system (e.g. works inside Zip folders and stuff like that)

This Pull Request has some issues (such as placement of files and not being able to automatically merge) which I'll fix if we deem it is useful to T3D.

It's split into 4 commits: 
* dd4ae89 fixes some inconsistencies between T2D and T3D in the Stream objects.
* 50c65b5 Makes the TinyXML library more inheritance friendly.
* f40d50a Adds FileStream versions of the TinyXML classes.
* ba9bccf Alters the the SimXMLDocument classes to make use of the virtual file system through the FileStream versions of the TinyXML classes.

They are dependent on each other from top to bottom.

So is this a change we want in T3D? Discuss.