Ensure casting a cookie to a string uses the value
Implement the array-like interfaces for Cookie_Jar
Always attach a cookie jar to a request
Use the correct jar property
Use an existing key if we have one

This allows passing in [ 'a' => 'b' ] rather than just [ 'a=b' ]
Store cookies in a flat array

I was a little overzealous here; cookies can only have a single value.
Persist cookies between requests

Adds a new 'requests.before_redirect_check' hook to allow for this.
Use instanceof instead of is_a

is_a was deprecated from 5.0-5.3, plus it takes parameters in the opposite order
to what the code previously had.
Properly parse non-associative cookie attributes

Output too.
Change CaseInsensitiveDictionary to be flat

Moves all multiple-value handling back to the headers class.
Add testing for cookie parsing