Add inheritance layer to specific http error types

Rather than forcing specific applications to handle error codes and translate these to meaningful HTTP error types. Let gds-api-adapters handle raising errors of specific types instead. 

By allowing the api adapters to raise specific ranges of HTTP error code, in specialist-publisher we can now use this to handle certain types of error more easily. In the case of queued publishing we would like to retry a publish if a HTTPServerError occurs, for example a 503 response, as this could be recovered from in a few moments allowing the publishing task to complete without intervention. A client error however, such as a 403, would mean that this publish task will never complete and therefore publishing should be aborted immediately. The code in specialist publisher which handles this can be found here:

https://github.com/alphagov/specialist-publisher/pull/255


This change should be transparent to other applications as this is merely an extra layer of inheritance to the inheritance chain. All errors will still be a subclass of the HTTPErrorResponse type but will be more specific to the HTTP response code ranges.