Differentiating between analyze_app and the new analyze_list.
The latter is just for any list of ASTs to analyze, whereas the former
checks for lambda applications and fills in names.  Fixes equality
comparisons for procedures, so (equal? (lambda (x) x) (lambda (y) y))
now returns true.
Adding procedure-docs and print-procedure-docs.
Adding extra inexat numerator/denominator tests.