First round of using LLVM.Wrapper.

A few things still don't build, and a few interfaces changed a bit
(from a to Maybe a, I may make them partial again, we'll see).
Another round of type changes.

Just a few removals of functionality (in CompilePipeline) and changes to
use pattern matching.
Merge branch 'master' into llvm-wrapper
Updates to bring the wrapper version up to working again.
Eval now produces the value instead of a location.

It used to produce the location of the value which the caller used,
which was useful for reusing the eval for LHS of assignments, but
sucked for everything else. Now we have an explicit function to lookup
the LHS locations to assign.
Using the builtin Wrapper functionType.
Using phi node for shortcut and separate access.

Still have to add this for separate function calls, but I'll have to
separate the with and without result cases at a higher level.
Updating to meet llvm-base changes.

This pulls some more code out of LLVM.Simple.
Using phi node in separate calls with results.
Fleshing out Simple module to be more reusable.

Still haven't properly integrated with the rest of the project.
Update to fit the monadic LLVM bindings.

Hopefully the bindings can be included in llvm-base.
Cleaning up warnings.
Removing unused modules from LLVM.
Using -std-compile-opts speeds up randmat 3x.
Reformating line length in qsc.
Adding libgc hooks in threads.

This makes it possible to use libgc if it is included via LD_PRELOAD in the
final executable. It may be useful to actually change libqs to use it
for allocation directly, but the LD_PRELOAD will still be necessary as
its dependencies don't use libgc (TBB, GLib, etc).
Updating cabal file to cut out removed modules.
Include libgc in the pkg-config file.
Some queue changes.

Replacing spsc internal implementatino with the bounded queue (spsc had
some bug, and this makes it faster on some examples, slower on others:
a wash).

Also uncommenting some code from the boundedqueue that probably made it
buggy (was probably only commented during testing).
Adding libgc header for pthreads overrides.