Move State out of Prelude.

Note that this is a breaking change for both the eclipse plugin
and the compiler.
adapt compiler to new location of State
Finish the Monad hierarchy.

'return' and 'pure' are now different functions who do the same
but are differently typed. If you use 'return', you'll get a
'Monad' constraint. OTOH, if you want to define an 'Applicative'
instance, you must use 'pure'. And when you use 'pure' in code,
you get an 'Applicative' constraint (unless otherwise specified
or superseded by use of functions that already have a 'Monad'
constraint.)

This is so that a do block that uses only (>>=) and 'return'
gets a 'Monad' constraint, instead of 'Applicative' and 'Bind'
constraints (which most often leads to passing the very same 'Monad'
constraint twice on the use side).