couchdb: add Client.EnsureDB
couchdb: fix options encoding

JSON keys are now handled explicitly, which is how CouchDB
does it internally. This means that fewer types are supported
(e.g. nil is always rejected if the option is not a known JSON option).