Expose rate limiting error if passed a 429 (TooManyRequests)

The clever-go client library will now expose the error in the
PagedResults object if a response's status code is 429. More
specifically, when receiving a header of the form that sphinx returns,
the limit and reset data are exposed as well.

Wrote a simple test which responds with a mock 429 and tests that the
appropriate error is exposed.
Merge branch 'master' into support_rate_limiting
Refactor TooManyRequests error format

New error type TooManyRequestsError.
Remove commented function

Derp
Use list comprehension in TooManyRequestsError.Error()
Return struct literal without declaring first

I.e., error := ErrorType{data}\nreturn &error, we have instead return
&ErrorType{data}.
Use fmt.Sprintf

In TooManyRequestsError.Error(), the string is now built with
fmt.Sprintf.
Canonicalize header keys in TooManyRequestsError.
Canonicalize header keys in mock rate limiting tests
Use type assertion for TooManyRequests test
Merge pull request #5 from Clever/support_rate_limiting

Support rate limiting