Big rewrite and a lot of new additions

Exceptions used during routing and error handling

Routing now only calls the first match's callback.

Access to the request and response objects, as well as superglobals and request headers.

HttpStatus class merged into the Response class.

Build passes on `>=5.3.0`.