allow setDefaultHeaders to override User-Agent

The User-Agent header is one of the prime candidates of headers to be
customized by default for every request, so it makes sense to allow
customizing it via setDefaultHeaders.

Before this commit, request specific headers would be set first and
the default user agent would then be added in addition to the request
specific header