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
Give the pretty-printer access to info about infixes
Respect precedence and associativity for infix ops in pprint

Fixes #1050.
Fix line breaks in display of :t at REPL
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
Fix interactive editing and tests

The pretty-printer fix broke parens in interactive editing.
Allow the big startup banner to be disabled

This is done by adding `:set nobanner` to the init script.

Fixes #590.
Merge pull request #1175 from david-christiansen/pprint-assoc

Fix associativity in pretty-printer
Make executor emulate putchar

Fixes #1056.
Merge pull request #1176 from david-christiansen/init-banner

Allow the big startup banner to be disabled