HEAD requests should fall back to GET handlers unless otherwise defined

Also, HEAD requests *always* discard the result body.
Cleanly separate ProcessHeaders and ProcessBody in result processor

To do this, we need to allow our result processors to be stateful, so they need
to be truly transient. Unfortunately StructureMap has a rather esoteric
definition of "transient" when you're using nested containers -- they are scoped
to the nested container itself. Fortunately, however, it does provide an
AlwaysUnique lifecycle option which is transient in the sense that every other
IOC container in existence understands it.
Ensure all requests get handled when hosted in IIS

Otherwise static files will not be served up!

See https://katanaproject.codeplex.com/wikipage?title=Static%20Files%20on%20IIS
for technical notes.
Fix VirtualPath.Append when original path is absolute.
Request.Path must always be AppRelative