Implement pragma handling

@danedaworld and I implemented `{-# LANGUAGE ... #-}` pragma handling.

Somebody more experienced than us should probably look at how we handle extensions that are not found in [Parser.hs](https://github.com/razzius/IHaskell/blob/allow_pragmas/src/IHaskell/Eval/Parser.hs).

Before:


![screen shot 2014-12-04 at 4 46 30 pm](https://cloud.githubusercontent.com/assets/2244895/5448278/b11e59e4-84aa-11e4-87d5-a00da453ef09.png)

After:

![screen shot 2014-12-15 at 9 56 57 pm](https://cloud.githubusercontent.com/assets/2244895/5448262/5ff23fea-84aa-11e4-99ae-7ccf7562c70e.png)

Closes #309.
Do you think `return $ Located line $ parseDirective` or `Located line <$> return ...` is better?

Coming from an imperative background I'm partial to `return $ ...` ;)