rework printing; mainly, don't integrate it with other code.

After last commit I think bindings became printed in the wrong order
(maybe it was correct before). But other good stuff came as a result of
the last commit (namely, avoiding new_decs_renv), so not attempting to
revert.

Rather, this commit removes printing from compile_news, and
instead provides a separate new function to print a declaration after
the fact.

The new function makes assumptions about where the new bindings are to
be found on the stack; also added a small test of the printer to the
test suite.

N.B. The results come out backwards compared to what you might expect,
e.g.
  val (x,y) = (1,2)
will print
  val y = 2
  val x = 1
But I think that's because pmatch (and pat_bindings) accumulates its
environment in "backwards" order.

In any case, I think now it should be about as easy as it should be to
change the compiler to go either way.
update proofs for last commit, and make some progress

subgoal of compile_decs_wrap_thm to do with printing now goes away. two
cheats remain in it, one should just be tedious, the other is about
getting the environments to match after the handler has been pulled out
from under all the new bindings... might be interesting.