Make execParserPure purer.

The `execParserPure` function now returns a pure value in case of parser
failure.

Since completers operate in the IO monad, when a parser's completion facilities
are used, `execParserPure` still returns a value which can only be inspected in
the `IO` monad.
Add local type signatures in BashCompletion.