Update helm.cabal

Added the monad transformers library to the .cabal file
Update Helm.hs

Take the IORef out of the Engine state record and then replace most uses of the Cairo.Render monad with the Helm monad defined as such:

type Helm a = StateT Engine Cairo.Render a

I've made this change and then updated the entire source code to make use of the new monad in a type correct way. I tested all the demos and they work exactly as before.
Update Helm.hs

group lifted terms together
Update Helm.hs

changed <- return into let
Merge pull request #55 from orchid-hybrid/master

Use StateT to manage EngineState