Refactor parsing of bracketed expressions

Treat all the expressions which read a subexpression first together, to
reduce backtracking. Sections now use a simpleExpr, rather than a full
expr, which may be a good thing anyway for clarity. Sections are also
explicitly disabled for prefix operators.
Implement LNullPtr primitive
Fix mistake in test Makefile
Temporarily disable buffer001 test

Seems to have a problem on 32 bit machines? Or at least, segfaults
inexplicably on some machines.
Merge pull request #832 from Ralith/llvm-nullptr

Implement LNullPtr primitive
Add assert_smaller function

assert_smaller x y evaluates to y, and asserts to the totality checker
than y is structurally smaller than x. This can be used to explain the
reasoning for totality if the checker cannot work it out itself. For
example:

total
qsort : Ord a => List a -> List a
qsort [] = []
qsort (x :: xs)
   = qsort (assert_smaller (x :: xs) (filter (<= x) xs)) ++
      (x :: qsort (assert_smaller (x :: xs) (filter (>= x) xs)))

The expression 'assert_smaller (x :: xs) (filter (<= x) xs)' asserts
that the result of the filter will always be smaller than the pattern
(x :: xs).

Using this is always preferable to %assert_total if the termination
argument can be explained in this way.
Merge branch 'master' of github.com:idris-lang/Idris-dev
Inline assert_smaller correctly

Also add to CHANGELOG
Disable buffer001 test properly...
Add assert_total function

This marks its argument as total, meaning that smaller subexpressions
can now be asserted to be total, rather than entire functions. A
combination of assert_smaller and assert_total should be used to help
the totality checker, rather than %assert_total to mark an entire
function as total.

The %assert_total option will be removed later.
Remove %assert_total from Nat and Strings
Check assert_total is defined before evaluating

Otherwise it goes bad when defining it! This is just a bit of a hack to
make sure we fully evaluate under assert_total, and probably ought to be
done a bit more tidily later.
Automatically detect console width

This can now be overridden with the :consolewidth command at the REPL or
in an init script.
Correctly pretty-print no-argument Nil

Previously, when the Nil constructor took no arguments (as was the case
with HVect), it was not shown in sugared syntax in the pretty-printer.

Fixes #820.
Add --repl [package] command line option

Checks the package, then starts a REPL using the main module listed in
the package description. If no main module is given, the REPL is not
started.

(This means library packages will need a main module listed --- it has
no other effect that to be the 'home' file for the REPL).
Added Functor, Applicative, and Monad Provider instances
Merge pull request #834 from david-christiansen/semantic-pprint

Automatically detect console width + fix pretty-printing of no-argument Nil constructors
Merge pull request #836 from trillioneyes/monad-providers

Added Functor, Applicative, and Monad Provider instances
Fix display of CantConvert
Better emulation of C in executor wrt file handles

Now, we return a null pointer on failure to open a file, and we allow
isNull to check handles as well as pointers. For handles, it returns true.