b325846 changed the behaviour of the HTTP adapter so that a
headers object supplied in requets options would overwrite the
default request headers. This results in authentication headers
not being added for certain PouchDB operations (e.g. put attachents)
and breaks instances where users provide custom headers.
Rather than re-introducing deep object extension across the library,
treat the headers object as a special case and explicitly merge default
and request-specific headers when construction the request options.
Fixes #6132, refs #6012