Removes the old ghc-options-* from cabal.
Seperate the generated and handmade source trees.

The handmade files (e.g. Types.hs) and automatically generated files
now live in two seperate source directories to make the difference more
clear.
Apply fixes for the interface.
Combines imports from the same module.

The previous code used a single import statement for each value that was
imported. Thus importing `a` and `b` from module M would result in:

import M(a)
import M(b)

The new code merges these two import statements into a single

import M(a,b)

The order of imports has also changed due to the changing implementation the
imports are now ordered by their ModuleName.
Merge branch 'develop' into reintroduce

Conflicts:
	referenceoutput.tar.gz