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.