Add support for Delegation Handler

This is a pretty simple handler to support delegation. I had to modify the CheckerServletRequest to support mutating headers.

Squashed commits. For history, refer to #229 
So I actually did look at using a TreeMap originally, but opted to stick with a mutable HashMap because TreeMap is immutable. To use TreeMap, I believe we would have to make use of a var field which is set to a new TreeMap each time addHeader(...) is called, or construct the TreeMap with the CheckerServletRequest object and return a new CheckerServletRequest every time addHeader(...) is called. The former option seems the better of the two, but when I wrote the code above, I chose to use a mutable map and find instead.

Are you okay with me using a var to point to a TreeMap and all that entails?