Improve custom reason code support.

Adds support for custom reason messages to curl_httpclient.
Make custom reason code HTTPError.message if one is available.
Add tests
Another test
Update documentation
Use parse_response_start_line instead of re
Merge remote-tracking branch 'upstream/master'
Fixes based on code review.

Don't fall through if regex doesn't match.
Use 'X-HTTP-Reason' instead of 'Reason'.
Merge remote-tracking branch 'dano/master'
Change an assert to an explicit exception.

Use normalized Http-Header-Case for X-Http-Reason header.
Add some logging to diagnose this flaky test on travis.