Create a public include folder 'libterra'.
Update version header location.
Merge remote-tracking branch 'MiniAl/development' into 'development'.
Add PugiXML dependency in CMakeLists
Add a thin wrapper around pugixml

This is almost a 1:1 wrapper around pugixml, but the interface makes
sense so if need be we can swap pugixml out and rewrite the internals of
the interface.
Add a tfXMLNode::ChildValue function

See
http://pugixml.googlecode.com/svn/tags/latest/docs/manual/access.html#manual.access.nodedata
for more information.

Also makes m_lastError no longer dynamically allocated, as copy
semantics meant there was occasionally a segfault when the destructor
was called.
Make tfXMLDocument inherit from tfXMLNode

PugiXML treats the document as a subclass of a node. This commit does
the same to our interface, so that we can access the document root node
via the document class directly.
Add a tfXMLDocument::Write(const char*) function

Writes the xml dom to a given file
Add Set methods for node/attribute name/value
Add {Append,Insert,Remove}{Child,Attribute} functions
Modify tfXMLNode Set and Get values

PugiXML uses special 'xml_text' nodes to handle the text value inside
nodes. This modification abstracts away from that model, and the setter
and getter methods for xml nodes work as expected.
Add libglm to CMake dependencies

@MiniAl something equivalent to this should be done for your visual
studio projects. libglm is just a set of headers, there are no
libraries, so you may just be able to install them to the include path
and be done with it.
Add a class definition for tfRoadMap

tfRoadMap encapsulates the data stored in the road map xml document, and
provides access to nodes, their relationships, and absolute positions.
tfRoadMap::Load takes a const char* rather than std::string
Finish the majority of the tfRoadMap class.

Much is untested, but I'm fairly certain the data is loaded into the
class properly.