(PUP-2026) Add TypeFactory support for CallableType
This adds support for creating a callable type via the
TypeFactory:
- all_callables method produces a Callable compatile with all callables
- callable method produces a Callable with specified arguments
- with_block method adds a block Callable
- with_optional_block method adds an optional block Callable
There is no need to call the "constrain_size" method since min/max
can be given directly in the calls (min, max) as the last optional
parameters, and max can be given as :default as infinity.