Add HTTPExceptions for 428, 429, and 431

Recently-released [RFC 6585](http://www.rfc-editor.org/rfc/rfc6585.txt) introduces three new client-error status codes: 428, 429, and 431. I have added HTTPException subclasses "PreconditionRequired", "TooManyRequests", and "RequestHeaderFieldsTooLarge" to represent these status codes. (The RFC also adds a server-error status code, 511, but that is for proxies rather than origin servers so I don't include it.)