Handle throttling for all services.

While many services throttle by responding with 503 (which already automatically triggers retrying the request with exponential backoff), many services (including DynamoDB) throttle by sending a 400-level response, with a typical error code value of `Throttling` or `ThrottlingException`. Sometimes the services do this in addition to 503-style throttling.

This PR changed the DynamoDB `ThrottlingErrorChecker` to be more general and work for all services. With the `HttpBackoffStrategy` and `ThrottlingErrorChecker`combined, the SDK should be able to handle throttling from all of the services.