Adding ability to use a custom user agent

Some APIs or services like to be able to identify your webapp by it's
UA, so this allows more than one SS app to conntect and still be
identified.
Better cache key generation

All of the arguments supplied to the request function can impact what is
returned by a restful service.

This takes account of that and makes the cache key more specific,
including basic auth details, so we don't rely on *just* the absolute
URL for caching.
Removing redundant code

If it doesn't work with SSL_VERIFYPEER off the first time, it won't work
the next time. Removing this code
Make turning off SSL_VERIFYPEER optional

SSL_VERIFYPEER is set to false no matter what, this is now made optional
for the dev and default to be ON!
RestfulService_Response now gets response headers

Before now, the RestfulService_Response object was never sent the
response headers. For APIs that rely on the response headers to send
back information (signatures, pagination info, etc).

This change makes the curl response have the full HTTP response
(including Headers). We then extract the body and the header information
and assign them to relevant vars and then construct the response as
before (with the addition of the headers array).

This change required two new functions:
extractResponse: This extracts the HTTP Headers and the payload from the
curl response and assigns it to the relevany vars that are passed by
reference
parseRawHeaders: This was designed to mimic http_parse_headers (a
non-standard php class). It converts the headers into an associative
array.