Fix .PHONY targets in Makefiles

Phony targets should be dependencies of .PHONY, not the other way around.
Added support for verbatim literals
Made verbatim string literals tokens (to allow whitespace after)
Added label type 'name

This is intended for field/effect disambiguation. "name" can be any
valid identifier. Two labels are definitionally equal if they have
the same name.
Fix for syntax extension parsing

When building applications, they should be flattened (i.e. take all
arguments at once) since we assume that's what the parser does
elsewhere.
Merge pull request #775 from david-christiansen/error-reflection

Preliminary support for error reflection
Merge pull request #777 from andy-morris/makefile-phony

Fix .PHONY targets in Makefiles
Merge pull request #779 from ahmadsalim/feature/multilineliterals

Adds support for triple-quoted possibly multi-line verbatim string literals
Don't use a record for SourceLocation
Separate Core NFData instances
Shortcut unification updates

Don't traverse the term if there's nothing to update!
Performance improvement: name supply

Use a name supply instead of checking for uniqueness of names when
creating holes. Huge speed improvements on large definitions!
Shrink IBCs dramatically

By erasing types, and inlined definitions which are only used for
totality checking so really don't need storing.
Display errors properly on IBC load failure
Resolve name hints before adding to .ibc
Another small reduction in calls to TT.(==)
Shave a bit more off IBC size
Some IBC compression

Both internally (storing names as references to a symbol table) and
externally (using zlib). Not sure this has any real effect other than
saving disk space, but that's not a bad thing!
Command line option improvements.

+ Added new flag `--checkpkg <package>` to type check only packages.
   + executables are not linked
+ Improved usage info styling
+ Added unmentioned flags added
Fix memory leak

It turns out that having H.catch around too large a block means that
state is retained. In particular, having the catch around a recursive
application of the REPL means that all previous states get retained! So,
be careful to scope catch blocks around the smallest possible block.