Add pkg-config gc flags to llvm Makefile

This makes building work for systems which have gc installed in a
non-standard location.  The invocation was pulled from
https://github.com/schani/clojurec/pull/2, and then modified based on
https://github.com/idris-lang/Idris-dev/pull/428#issuecomment-26302460.
Correct Semilattice Implementations
javascript: switch to Data.Text for code generation
Merge pull request #1385 from raichoo/javascript

javascript: switch to Data.Text for code generation
javascript: factor AST into own module
javascript: whitespace
javascript: wrap exceptions in function
Merge pull request #1387 from raichoo/javascript

Javascript
Change 'Not a guess' error

On further investigation, every time this is encountered it means that
there are still holes in a subterm, so the appropriate error is
"Incomplete Term".
Resolve class instances under let bindings

This only really matters when there is a default Num instance to be
resolved - in other cases it'll be dealt with by the resolution under
the PApp elaboration.

Fixes #1388
Fix data ctor arity comparison.
Fix parameter spotting in function types

We were only looking in the return type, not the argument types.
Fixes #1391
Disjoint constants should be fatal in unification

Fixes #1390
Merge pull request #1392 from ziman/fix-dctor-erasure

Fix erasure from data constructors
x = y now tries homogeneous equality first

People often assume that the type of x is enough to give the type of y,
but because = is heterogeneous this isn't always the case. So now the
elaborator will assume homogeneous equality is intended, and revert to
heterogeneous when necessary.

Fixes #1386
Normalise before abstracting over 'with' type

Otherwise we don't necessarily abstract over the scrutinee properly in
the resulting function.
This has necessitated a hack in Data.Bits, which I will sort out ASAP.
Normalise everything before 'with' abstraction

Now the TMP HACK in Data.Bits can go
Replace 'effects' with neweffects
Remove neweffects from cabal
Clarify semilattice documentation