Fallback and factory

Analyzer should attempt to normalize detector return value to
`application/octet-stream` rather than returning null. Overall
this could probably be handled better but my desire to avoid
globals is making me be careful here.

Added a factory for internet media types. This will allow for
easy creation of well known media types like `text/plain` and
`application/octet-stream` along with other custom types like
`audio/whatever-you-want` by simply calling
`->createAudio('wahtever-you-want')`.