Metadata store

MetaData has been redesigned to allow using custom classes for metadata handling.
This for example allows the metadata be stored in a database and handle their change dynamically instead of having to reload the server and reparse all MD files again.

class MetaData presents the comon interface for all derived classes.
class InMemoryMetaData is the class used for MD stored in memory as part of the Server object.

Configuration for maetadata has been chaged and now looks as follows:
'metadata': [
    {"class": "full.path.to.metadata.class",
     "metadata": [(tupple, with, loader, arguments)]},
     ]

For example this specification:
"metadata": {
        "local": [full_path("../sp-wsgi/sp.xml")],
    }

needs to be changed as follows:
"metadata": [
     {"class": "saml2.mdstore.MetaDataFile",
      "metadata": [(full_path("../sp-wsgi/sp.xml"))]},
]