pull common infrastructure out of compile.front

and cut dependencies between compiler subpackages where possible.
see project/Depend.scala changes (and graffle changes) for the
new structure.  front, middle, back each independent, and only
front depends on parse