New etag-parsing system that tries to follow the HTTP spec

I need to find a better way to do HTTP header parsing.  Probably actual
parsers would be good.