RestfulService Improvements

I've been integrating a few APIs recently and found some missing
features in the RestfulService class.

- Added a way to set a custom UA (some APIs want this so they can
identify your app)
- Cache file name generation improved to take account of Auth
credentials, request type, request data, headers and curl options. These
can all effect the responses you'll get back and how one would want them
cached.
- Responses will now have the headers set - lots of the APIs I'm
intergrating with require the response headers be read and used. This
can't be done in an extension class without duplicating a lot of code.