A cookie value may be DQUOTE'd as per RFC 6265 2.2.

Escaping with the backslash character is not mentioned in the RFC but
the backslash character is not allowed here anyway, so just be nice
and support it for legacy applications.
Drop multi-byte characters from the test, which are not allowed.
Improve comments.
Make expires and max_age affect each other and drop session=().
Remove an obsolete part.
Use __send__() instead of send().
A relative path must be treated as the root path as per RFC 6265 5.1.4.
Disallow some more bad characters in name=/value=.
Improve rdoc markups, migrating to Markdown.
Make path= accept a string-like.
Add expires_at as alias for expires.
Rename expire to expire!, to reduce the risk of making a typo.
Add inspect.
Initialize secure and httponly with false instead of nil.
Rewrite the Set-Cookie header parser entirely.

The new parser is almost RFC 6265 compliant as the previous
implementation but has some extensions:

- It can parse double-quoted values with unsafe characters inside
  escaped with the backslash.

- It parses a date value of the expires attribute in the way the RFC
  describes, with an exception that it allows omission of the seconds
  field.  Some of the broken date representations that used to pass
  are now treated as error and ignored.

- It can parse a Set-Cookie value that contains multiple cookie
  definitions separated by comma, and commas put inside double quotes
  are not mistaken as definition separator.