Make the tests for 304 handling pass

This is a first draft and could do with some review from
@FND and/or @pads.

The main changes here are:

* HTTP304 temporarily subclassed to allow a header-passing
  interface when creating the exception, so that all the
  headers that we want can be sent.
* Adjustments in to signature and callers of check_incoming_etag
  and check_last_modified so that they do the right thing. Basically
  we are passing header information down the stack and allowing for
  some reasonable defaults.

As constructed these things are backwards compatible with existing
callers.

Questions:

* Does the backwards compatibility stuff impose too much noise into
  the system? Is there a different way?
* Are the defaults okay?
* Is kwargs in an exception signature okay or should we be explicit?
* Is the subclass kosher for being merged back into httpexceptor?

Also needed to change the no-transform middleware so it
engages on 304, not just 200, otherwise the cache-control header
will not match.