Set up initial infrastructure for plugin branch.

Now all I need to do is implement the plugin.
Successfully compile and run simplest program.
Added support for more expressions, dictionaries, type args.
Add imports required for types.
Generate data type declarations.
Don't output lambdas of type variables.
Added support for Char# and Int# literals.
Support definition of symbols.
Made Output.Syntax and Output.Ppr.

To separate the code generation from the printing of the generated code.
Track imports as String instead of ModuleName.
Requalify modules with Smten.Lib prefix.

The generated code doesn't compile now because I don't have the base code yet.
I'll fix that shortly.
Setup template for smten-base package.
Use -odir as location for generated haskell files.
Implemented my own Prelude in Haskell.

And got my test case to work on it.
Separated out primitives.

And made a way to manually implement them, rather than rely on the
smten-plugin compiled version.
Clean up nameCG.

Sanitize symbols and have the option to use the unique name.
Generated dictionary type definition using record constructors.
Many little fixes.

* Output superclasses for dictionaries as well as methods.
* Use right type for manual int_eq and integer_eq
* translate tuple names specially
Got tests to compile and run from plugin-generated code.
Added support for string literal patterns.