Split the GHC interface to a front-end (for type checking) and a back-end (for translation from Core).
Code cleanup.
Fixed Main to call the two GHC interfaces.
Type signatures are now read by the Core back-end.