Handlers can have required params with extension points.
- Introduce several more unit tests.
- Try to clarify intent of existing unit tests.
- Add logic to allow handlers to have "required parameters". These are
parameters with no default value set.
- Add logic to catch and raise an exception when:
- The required parameters are not supplied (either through positional
args or keyword args)
- The handler does not accept enough positional args.