ENH: Replace old way of creating static instances of XdmfTopologyType,...
ENH: Replace old way of creating static instances of XdmfTopologyType, XdmfGeometryType, and storing them by reference in their respective topologies. These now work by providing a specific constructor method that returns specific instances of the objects populated with correct values. This was changed because there are some type options in Xdmf where static instances don't make sense (e.g. XdmfTopologyType Polygon can have many different values for nodesPerElement) but we still need to restrict construction of these types with specific values. Each parent item merely keeps a copy of a topology type. I considered doing this with smart pointers, but I believe it to be unnecessarily complicated, especially when direct comparison of topology types is needed. I am considering separating these types into separate classes. Added XdmfAttribute implementation and began populating XdmfVisitor to write out XML.