Introduce a register_dispatch_predicates.
Add functionality to give names and defaults to predicate, and use this
information in register_function_by_predicate_name