Introduce an argextract module. The ArgDict class turns arguments to a
function into a dictionary.
Some more ideas for the plan.
Implement a clever key extractor.
Test a few errors that can happen with the key extractor.
Remove name argument from predicates; it's not really necessary -- could
change the indexing strategy in MultiPredicate to use simple list
indexes.