Prune unused imports
Failing tests for dispatch returning a result
Return a result from dispatcher.dispatch
Stop abusing request.headers

Instead of overloading request.headers for implicit content negotiation
and autoindexing, store the needed info in a dispatch_result.extra dict,
passing dispatch_result around as needed.
Remove dependence on request.uri in dispatcher
Move setting of request.fs out of dispatcher
Stop passing request to dispatch entirely
Get test suite passing again
Remove dependency on website.media_type_default
Remove dependency on website.indices
Remove dependency on website.www_root
Remove website.list_directories & .ours_or_theirs
Remove website entirely from dispatcher
Remove request.fs

Now that we expose dispatch_result to simplates and in the algorithm
state, we no longer need to store the filesystem path at request.fs.
Yay for modularity!
Disentangle the request object from resources.get
Go back to namedtuple for DispatchResult

https://botbot.me/freenode/aspen/2014-10-03/?msg=22822660&page=1
Merge pull request #389 from gratipay/refactor-dispatch

Refactor dispatch