Requests return dict objects with body, header, code properties

Affected functions: raw_requests, requests, interpret_response,
handle_api_error. The request function still returns the same type of
object.
Add test for rate limiting errors

Use package httmock to produce mock http response objects to pass into
interpret_response and verify that the correct error is raised
(TooManyRequestsError).
Refactor http response object

The response object (dictionary with keys 'body', 'header' and 'code')
now has its key 'header' renamed 'headers'.

Removed a couple of extraneous variable bindings.
Clean up TooManyRequests test
Pass headers from urllib,pycurl,urlfetch along to interpret_response

The headers are passed along in whatever format the http libraries
return them in.