Register parsers and serializers with mime-type

This allows to use mime-types for the format argument of Graph.parse and Graph.serialize. Applications that only know the mime-type (e.x. http server or client) do not need a translation table from mime-type to the name of the parser or serializer.

For example:
```
>>> from rdflib import Graph
>>> g = Graph()
>>> g.parse(format="text/turtle", data=b'<foo:a> <foo:b> "bar" .')
<Graph identifier=Nc10cf44d26f24d5aa268a1f97c1965b6 (<class 'rdflib.graph.Graph'>)>
>>> g.parse(format="text/n3", data=b'<foo:c> <foo:d> "baz" .')
<Graph identifier=Nc10cf44d26f24d5aa268a1f97c1965b6 (<class 'rdflib.graph.Graph'>)>
>>> g.serialize(format="application/rdf+xml")
b'<?xml version="1.0" encoding="UTF-8"?>\n<rdf:RDF\n   xmlns:ns1="foo:"\n   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"\n>\n  <rdf:Description rdf:about="foo:c">\n    <ns1:d>baz</ns1:d>\n  </rdf:Description>\n  <rdf:Description rdf:about="foo:a">\n    <ns1:b>bar</ns1:b>\n  </rdf:Description>\n</rdf:RDF>\n'
```