Implement a 'format registry', for responding differently depending on Accept headers

That if no defaultOutputFormat was specified I got the following backtrace:
<pre>
  File "/home/dan/pythonenv/lib/python2.7/site-packages/twisted/web/server.py", line 189, in process
    self.render(resrc)
  File "/home/dan/pythonenv/lib/python2.7/site-packages/twisted/web/server.py", line 238, in render
    body = resrc.render(self)
  File "/home/dan/pythonenv/lib/python2.7/site-packages/saratoga/api.py", line 108, in render
    self.api.outputRegistry.getFormat(request) + ";" +
  File "/home/dan/pythonenv/lib/python2.7/site-packages/saratoga/outputFormats.py", line 27, in getFormat
    accp = cn.negotiate(accept)
  File "/home/dan/pythonenv/lib/python2.7/site-packages/negotiator/negotiator.py", line 439, in negotiate
    accept_parameters = self._get_acceptable(preferences, self.acceptable)
  File "/home/dan/pythonenv/lib/python2.7/site-packages/negotiator/negotiator.py", line 693, in _get_acceptable
    log.info("Server: " +  str(server))
  File "/home/dan/pythonenv/lib/python2.7/site-packages/negotiator/negotiator.py", line 117, in __repr__
    return str(self)
  File "/home/dan/pythonenv/lib/python2.7/site-packages/negotiator/negotiator.py", line 105, in __str__
    s += "Content Type: " + str(self.content_type) + ";"
  File "/home/dan/pythonenv/lib/python2.7/site-packages/negotiator/negotiator.py", line 281, in __str__
    return self.mimetype()
  File "/home/dan/pythonenv/lib/python2.7/site-packages/negotiator/negotiator.py", line 247, in mimetype
    mt = self.type + "/" + self.subtype
exceptions.TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
</pre>

..because although content_type existed it didn't have mime_type set.

should the OutputRegistry constructor have a non-None defaultOutputFormat or have this as a mandatory parameter?