Support multiple Vary response headers

If a server responds with multiple Vary headers, their comma-separated
field values should be joined and the joined list should be used to
determine whether a cached response may satisfy a request. (See
http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2.)

This commit adds headerAllCommaSepValues, which joins all
comma-separated values of a header, and uses it to compute the list of
Vary'd headers.

Closes https://github.com/gregjones/httpcache/issues/27.
Are the values guaranteed to never have a comma other than to separate actual values? Is there no ability to escape the commas, for example `Value1,"Value2With,Some,Commas",Value3`?

Briefly looking at http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2 seems to suggest the possibility of quoted values. But then it also says:

> Multiple message-header fields with the same field-name MAY be present in a message if and only if the entire field-value for that header field is defined as a comma-separated list [i.e., #(values)]. It MUST be possible to combine the multiple header fields into one "field-name: field-value" pair, without changing the semantics of the message, by appending each subsequent field-value to the first, each separated by a comma. The order in which header fields with the same field-name are received is therefore significant to the interpretation of the combined field value, and thus a proxy MUST NOT change the order of these field values when a message is forwarded.

If I read that correctly, does that support the fact that commas cannot come up inside the quoted values?