Redesign route generation to handle URL patterns

Route generation will now inspect method signatures in `APIHandler`s and `ViewHandler`s, and construct routes with URL patterns based on the signatures. URL patterns match `[a-zA-Z0-9_]+`.

Backwards Compatibility: `body` is no longer provided by `io_schema` as the sole argument to HTTP methods. Any existing code using `body` can now use `self.body` to get the same object.

resolves #6