Output: Use throwError from Control.Monad.Except

Update 'Idris/Output.hs' to use 'throwError' from 'Control.Monad.Except'
rather than from 'Control.Monad.Error', which causes the build to fail
with a default setup:

  src/Idris/Output.hs:18:1: Warning:
      Module ‘Control.Monad.Error’ is deprecated:
        Use Control.Monad.Except instead

  <no location info>:
  Failing due to -Werror.

With this patch it should build fine.

This requires mtl >= 2.2.1, so add this to the cabal file.

Signed-off-by: Alexander Berntsen <alexander@plaimi.net>
javascript: better unicode support
added optimizations to js/node cabal section
updated CHANGELOG
Merge pull request #1785 from raichoo/master

javascript
Fix visibility of imported things

Fixes #111
Previously, if a module B imports a module A, then a module C imports B,
the public names in A would also be visible to C (i.e. B would
automatically reexport everything from A). This seems to be a bad
default.

This patch changes the default behaviour so that the only names exported
from a module are those defined in that module. If B imports A and wants
to reexport everything in A, then A should be imported with the "public"
modifier (i.e. "import public A").

Several changes have been made to the prelude, since several prelude
modules were taking advantage of the old broken behaviour.

This may cause lots of things to break. Sorry. The fix is typically just
to import the module you should have imported anyway :).
Merge branch 'master' of github.com:idris-lang/Idris-dev
Update CHANGELOG
Fix doc build
Merge pull request #1749 from alexander-b/fix-build

Output: Use throwError from Control.Monad.Except
Implemented @-patterns

By popular request. Fixes #1706.

It's not the most efficient desugaring, merely translating the @s on the
left to lets on the right, so the case tree builder won't be aware of
it. Still, it provides the notation and it works nicely with showing
what is in scope and what is available in the prover and so on.
Update CHANGELOG
Use idris_alloc for GMP allocation

Now storing VM in a pthread_key (in environments which support pthreads)
meaning that allocation doesn't need to be passed a VM pointer, and so
we can safely use the idris allocator from GMP (and indeed any C library
which wants to use it).