Restrict PE for class dictionaries

This is a temporary fix until I write a more appropriate evaluator for
PE purposes, though it does the job fine.
Also fix specialisation under Delay.
Replace a sequence of <|> with choice.

Replaces `a1 <|> a2 <|> ... <|> an-1 <|> an`
with `choice [ a1, a2, ..., an-1 ] <|> an` in Idris.REPLParser
where `choice` is from package `parsers` module `Text.Parser.Combinators`.

On my machine with ghc 7.8.3 this lead to a decrease in memory usage
during compilation of this module from >7GiB to ~400MiB.
Bump lens upper version bounds
Merge pull request #1687 from RyanGlScott/master

Bump lens upper version bounds
Merge pull request #1686 from projedi/compilation-memory

Replace a sequence of <|> with choice.
Merge branch 'master' into FFunction-types
Make FFunctionIO similar to FFunction