another attempt to get the makefile to do the right thing

the problem is lem being too smart about not regenerating files... added
an explicit call to touch to ensure the last file appears to have been
modified after the call to lem.
put the conditions on the cenv into the env_rs predicate

this is so we can say they should also be preserved when the cenv
changes (as happens with type declarations).
make compile_dec do type declarations all at once

with a left fold, as opposed to an explicit recursion: this matches what
evaluate_dec does better.