feat(Api): Method-based routing

* Use method-based routing
* Add all official (and some unofficial) HTTP status codes
* Convert several occurences of self.assertThat to self.assertEquals.
* Minor cleanup/refactoring

BREAKING CHANGE: Handlers must now have callable attributes that act as
"responders" to the various HTTP methods they support. Responders must
be named on_<method.lower()>, e.g. 'on_get' and 'on_post'.