Generalize list eliminator

Generalize the list eliminator to return any type, rather than only the type of the elements in the list. This matches the behavior of other eliminators, such as maybe and either.
Add laziness to values which aren't evaluated in all branches of a function.

Most notably, this includes making (&&) and (||) lazy in their second
arguments, allowing conventional short-circuiting behavior.
Correspondingly, the foldable functions `and` and `or` now short-circuit
as well by applying foldables which contain lazy Bool values. Unlike
Haskell, short-circuiting occurs from right to left on lists,
because as Idris is a strict language, `foldr` evaluates from the inside
(right side) out.
Make `and`, `or`, `any`, and `all` short-circuit from left-to-right, as is more natural.
Generalize list eliminator

Generalize the list eliminator to return any type, rather than only the type of the elements in the list. This matches the behavior of other eliminators, such as maybe and either.
Add laziness to values which aren't evaluated in all branches of a function.

Most notably, this includes making (&&) and (||) lazy in their second
arguments, allowing conventional short-circuiting behavior.
Correspondingly, the foldable functions `and` and `or` now short-circuit
as well by applying foldables which contain lazy Bool values. Unlike
Haskell, short-circuiting occurs from right to left on lists,
because as Idris is a strict language, `foldr` evaluates from the inside
(right side) out.
Make `and`, `or`, `any`, and `all` short-circuit from left-to-right, as is more natural.
Add documentation to Prelude functions
Merge branch 'master' of https://github.com/bmsherman/Idris-dev

Conflicts:
	libs/prelude/Prelude/Applicative.idr
	libs/prelude/Prelude/Bool.idr
	libs/prelude/Prelude/Foldable.idr
	libs/prelude/Prelude/Maybe.idr
Make Prelude.Applicative.when implementation cleaner.
Make Prelude.Applicative.when implementation cleaner.
Merge branch 'master' of https://github.com/bmsherman/Idris-dev
Fix implementation of Prelude.Applicative.when
Make Ctxt lookups more straightforward in ASTUtils.
Update comments.
Bring module loading into Idris monad

This allows proper error signaling, compared to IO, which is important
for IDESlave
Follow IDESlave protocol when import not found
Make ihWarn work properly with emptyFC on command line
Prevent double-printing some FCs
Merge pull request #1180 from david-christiansen/ideslave-message-fix

Make missing imports errors follow the IDESlave protocol
Add superclass info to ClassDoc and output it in pprintDocs (:doc command)