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.
Now that we are discussing it, I would actually suggest factoring that entire chunk out. Why not
```haskell
parseChunk chunk line =
  Located line <$> parser chunk line
  where
    parser | isDirective chunk = parseDirective
           | isPragma chunk = parseChunk
           | otherwise = parseCodeChunk
```
as for `return` vs `<$>`, I am somewhat ambivalent but tend to lean towards `<$>` when not in large `do` blocks. I should probably settle on one, though.