Initial support for classes and methods as callables.
Implement handling of context managers.
Implement marker requirements, where returning None for a required type means that the requirement will not be passed to callables that require it.