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
Merge pull request #1174 from bmsherman/master

Add laziness and some documentation