Refactor the printer a bit. Broken proofs.

The repl was converting types to strings too soon, so that we had
branches on whether it was about to print the string "<word8>" or not.
This refactors so that the string conversion happens at the last minute.
This had the effect of moving the inf_type_to_string function from
repl_funScript.sml to compile.lem and thus needed some refactoring to
get the definition of infer_t into Lem.

As long as we're at it, we now traverse the list of types and bindings
together for printing, rather than turning the types into a finite map
and then traversing the bindings and looking them up in the map.
print based on the inf_type rather than the inf_type_to_string of it
use the type inferencer for the names as well as the types to print
open infer_tTheory in inferProps and inferSound
some progress on printingScript.sml

The new side-conditions can be seen on compile_print_dec_thm.
printingTheory builds
fix first case of compile_top_thm for new printing
finish fix of compilerProofTheory
Merge branch 'fix_print' into Word8Array