Optimize lazy-request for CPU time

This approach uses Java's HashMap to build up the eventual lazy-request.
Headers are still stuffed in a transient until the user asks for them,
when they get turned into a PersistentMap.

These changes do result in a bump in reqs/s, but it's not significiant.
What we're saving on the servlet function calls, we're paying for in
`.put` function calls.  Clojure is crafty when creating a large literal
map, using an Object Array.  Lookup is also extremely efficient for PHM.

Lookup on LazyRequest is about twice as long as lookup on PHM.

I think we can come up with something slightly better.
Include benchmarking tools