Some style. Some fixes, especially for windows with the exports and template changes.
More so adapt this to work well as a subdirectory in a larger project. Don't force settings
that the parent project owns, allow parent project to turn on tests without xdmf's tests and
make the name of the library an option so that parent can have two xdmfs.

Rework of HeavyDataController and HDF5Controller to remove extra code and move HeavyDataController away from being too dependent on hdf5 style
XdmfFunction now supports negative numbers in addition to the - operator
Reworked the interaction between array references and reading
Cleaned up some warnings that showed up in pedantic
Adjusted mpi tests to test against the MPIEXEC variable as opposed to hard calling mpirun
Still needs to be changed to work better with Cray mpi style execution
Updates to XdmfArrayType to allow for signed and floating point checking
General test and Documentation updates

Eliminate getRealPath calls which are expensive and not necessary in many cases
Parse XML node content only when necessary (parsing arrays)
Fix cases where copies were made of strings instead of using references
Use "map.insert()" rather than "map[] =" when adding properties to map

Using statements have been added to XdmfSharedPtr.hpp. All used of
boost::shared_ptr and boost::shared_dynamic_cast have been replaced
by shared_ptr and shared_dynamic_cast. Slight modification to XdmfCore.i
to get swig wrapping working again.

The macros
XDMF_CHILDREN and XDMF_CHILDREN_IMPLEMENTATION
add capabilities to add and remove children by index or property from a parent item. This simplifies the code
as the same insert() getChild() calls were used throughout the code.

ENH: Change some method names in XdmfArray to be clearer and less verbose. Modify files for documentation clarity. Modify some minor things to prevent -Wall warnings in gcc. Add python install rules and rpathing.