Separate base into base and prelude

Everything in prelude will be imported automatically, unless given
the --noprelude option. The idea is that what counts as "Idris" is the
compiler plus the Standard Prelude. Other libraries (base, effects, etc)
are still part of the distribution, but not necessarily standard.
Merge branch 'master' of github.com:idris-lang/Idris-dev

Conflicts:
	libs/Makefile
Forgot the Makefile in prelude!

Fixes #655
Move Decidable.Equality to Prelude
Update idris.cabal for Decidable
Class method types may depend on earlier methods

Classes are now represented as dependent records, rather than simple
records. This allows type classes to capture functions and their
properties together.
Take out the TODO that's TODONE for classes!
do not run the initscript if in ideslave mode
remove auto-idris, now that the functionality is supported via ideslave
Merge pull request #660 from hannesm/no-init-ideslave

do not run the initscript in ideslave mode; also remove now unneeded auto-idris.el (since idris-mode implements that via ideslave)
Remove needless map in Core/TT

Fixes #608
Strictness improvements

Add 'NFData' instances (autogenerated using 'derive') to force complete
evaluation. Also make the context and case trees strict, since they
need to be evaluated fully when writing out the intermediate file.

Fixes #559
Don't allow matching on functions without justification

Otherwise we have patterns which type check, and which are considered
total, but which can't be properly check at run-time.

Fixes #138
Update CHANGELOG
Use _ if all alternatives are unmatchable
Library changes: Please read details below!

Builtins now contains only those things required to support builtin
syntax. Everything else moved into Prelude, which has been reorganised
a little (extra files for Bool, Classes and Basic functions such as
id and composition).

New --nobuiltins flag, which is intended only to built the Builtins
module. --noprelude now loads Builtins. --nobuiltins implies
--noprelude.

NOTE: You may need to delete the libs/ directory and check it out again
to be sure there are no stale ibc files (we really need to fix the
build process!)
Make sure mpz_t is defined
Remove needless Prelude imports
Add --nobasepkgs flag

Intended for use when building the base packages, so that they don't
look at installed versions. Simply removes 'prelude' and 'base' from
the package list.
Report errors directly, instead of parsing the string given to ihputStrLn

Still use string parsing for parse errors (there must be a better way to get the source location of a parse failure)