Add explicit compile step to make precondition/shared_constraints collection simpler
Make call_names accept either a single call name or multiple, and remove call_name property.  Also make known_calls an explicit compile step
Make annotations computation an explicit compile step and remove the list restriction from the DSL
Fix repr for CompiledRule
Rename self.rule to self.dsl_rule in CompileRule and simplify code in compile_known_calls a little