switched to local shared_ptr + added markup interface

markup interface: basic dynamic class interface which allows to
use a certain 'markup' for queries. this enables external developers
to replace rather awkwardly looking XPath expressions like
  string Si_bandgap_query = "/materials/material[id=\"Si\"]/parameter[name=\"bandgap\"]/value/text()";
with
  string result = matlib->query("Si/bandgap");

we will see how this works out ..