Clean up various comments
Clean up the code that handles rule tuples

Part of a larger effort to make "inference" transparent.
Remove 'ALL_RULES' from all files

Now it's a little easier to follow how the program finds and processes
rules.
Refactor some rule/inference code
Remove extraneous code in upadesha.py

This code redundantly implemented 1.2.4.
Add miscellaneous
Add basic shell

This is run with 'fab shell' and makes it easy to examine the rules
used by the system.
Add various comments