Warning header

A HTTP message can have more than one warning; this stores them as a `Guzzle\Http\Message\Warning` object and allows easy manipulation (similar to the `Cache-Control` directives).

It also adds a '110 Response is stale' warning to the cache plugin when it serves a stale response.

(This is the first of a few stale response PRs.)