This fixes several issues and adds some new features:
- Type parsing bugs with commands and checks where the return annotation would be mistaken for an option to parse.
- Deferred components can now set a local error handler like everything else.
- App can be passed to commands, checks and other handlers via adding a parameter called `app`. Unfortunately, It's not possible to do this based on type hinting so the system requires this as a reserved name.