Extended the `ImportError` handling hack to correctly handle the
case where we cannot import submodules AND someone is extending
one of the exported classes. Previously ContentMixin and
ContentSettings were functions when ImportError was raised which
causes really confusing errors.
The correct solution here is to stop exporting stuff at the top-
level and require clients to import from modules but that is for
another day.
This lets any transparent caches that our responses will vary based on
the Accept header. Without this, caches will assume that a cached
response can be used even if the Accept header differs.
Distributing a raw python module into a namespace package seems to be
somewhat unreliable though I haven't proven it yet... In any case,
installing a package inside of a namespace package behaves itself.