Post-process generated front-end files.

SML/NJ's recent ml-lex and ml-yacc tools generate long identifiers
rather than unqualified (top-level environment) identifiers; that is,
they generate "List.map"/"List.rev" rather than "map"/"rev" and
"General.Subscript" rather than "Subscript".  Unfortunately, in the
context of building mlton-compile, the generated front-end files are
elaborated in the environment provided by the MLton utility library,
not the environment provided by the SML Basis Library.  While the
MLton utility library does re-export the top-level environment of the
SML Basis Library, MLton's utility library provides a structure List
that is incompatible with the SML Basis Library's structure List
(MLton's utility library provides an uncurried List.map, while the SML
Basis Library provides a curried List.map) and the MLton utility
library does not provide a structure General.  Furthermore, with
SML/NJ's recent ml-lex and ml-yacc tools, both the SML Basis Library's
structure List and the MLton utility library's structure List are used
in the generated code --- the former by the tool generated code and
the later by the semantic actions.

(SML/NJ's recent ml-lex and ml-yacc tools also generate
"String.substring"/"String.size" rather than "substring"/"size", but
MLton's utility library provides a structure String that is compatible
with the SML Basis Library's structure String for these functions.)

To accomodate SML/NJ's recent ml-lex and ml-yacc tools, post-process
the generated front-end files, replacing the generated occurrences of
"List." and "General." with "Pervasive.List." and
"Pervasive.General.".

Fixes MLton/mlton#77 and fixes MLton/mlton#86.
Merge pull request #87 from MatthewFluet/smlnj-tools-for-front-end

Post-process generated front-end files.