feat(request): report curl_easy_setopt failures

Scalar options never fail; the only possibility is CURLE_OUT_OF_MEMORY
when allocating string arguments.  Check and throw bad_request for
URL and method.  User-agent is OK if failed.

Change what() string of bad_request and bad_connection_pool adequately
to adapt to the widened meaning.