Fix #164:  Map HTTP error responses for storage onto specific exception classes.

Fixes #164.
I agree a metaclass is a bit overkill for this, I'm just worried about using `globals` because

1. It introduces a large amount of unknown behavior
1. It puts a bad practice in an "official Google" codebase

If you are opposed to using a metaclass, we could recursively use `__subclasses__()`.