Modify cookie[]= to take a hash of extra options

Based on pull request #66, with the suggested syntax changes. Doesn't work using `cookie[:key] = 'value', :option => 'asdf'` for whatever reason, so you need to wrap the extra hash in `{}`'s.

Also, on implementation: when `[]=(key, value)` gets called with a hash, `value` becomes an array containing both the bare value, as well as the hash. Just one of quirky Ruby things I guess.