API Restfulservice improvements

Changed the RestfulService so that it:

- Now parses and stores headers from the responses
- Cached responses on errors now store the whole response, not just the body
- Ability to store default curl options
- Cache key generation now takes account of all params, rather than just the URL

see https://github.com/silverstripe/sapphire/pull/1148