Port over evaluation support from heyLu/lt-haskell

As discussed in heyLu/lt-haskell#1 this supports evaluation by spawning `ghci` in the background and sending commands to it.

Alternatives to this could be:
* spawning it on the server (maybe the code would be cleaner? but would still require parsing ghci's responses)
* using [hint](http://hackage.haskell.org/package/hint). i had a quick look at it, but you have to do your own `import` support, io isn't trivial and you have to manage the interpreter state for yourself.