Make `abort` work without a `Request`.
Fix various routing issues, add the `either` router.

`either` chooses the first route that does not fail.
Add a setup.py.