More changes to Headers

* Behavior now excludes multiple Singleton headers (except Set-Cookie)
* putHeaders is the only way to add `Header`'s to `Headers`
* Open question: construction of Headers and the arguments of putHeaders are assumed to not contain duplicate Singleton headers. This is largely a performance issue. Otherwise, we must always parse headers and treat them more like a weird Set. Is this worth it?