Reformat code for copy/paste into paper.
Add etags 'tags' target to Makefile.
Make 'CurryUncurryM t' a precondition to 'UncurryM t'.

This simplifies the constraints on functions, although
it adds another level of indirection which may be confusing ...
Rename 'dict' to 'cache' in 'castMemoizer'.

This makes the code more consistent with the language
used in the paper.