Create base Klein app: OtterApp.

OtterApp overrides the base Klein route to ensure 'strict_slashes' is
False. This also reduces the need to import 'functools.partial' in
every app.