Interim checkin
Lots of SSA progress
pretty print a few more cases
Account for arguments in the SSA labeller

Right now, the labeller just takes the argument/register
map as an input.  This will need to be calculated separately
based on the number of input registers and the type signature
(since wide types require two registers, this isn't quite trivial).
Some refactoring, a little CFG work, a new test
Pretty printer improvements
-O2 was causing problems, drop to -O1
Finish off the pretty printer

It is still rough and ugly, but now complete enough
to test with.
Refactor basic block handling a bit

Makes things a little more type safe and easier to keep track of
Add a test with a branch
Account for implicit block ends in CFG construction

Some instructions are implicit block terminators because they fall
through to the targets of jump instructions.  This change now
accounts for those.
Remove commented out lines
Ignore some cabal sandbox files
Remove unnecessary binding
Remove some addressed FIXME notes
Switch to test-framework instead of tasty
Test case with a simple loop
Fix an SSA labelling bug with argument labels

Arguments were being introduced into the value number mapping too
soon (formerly before labelling started).  This prevented the recursive
registerRead function from being called.  In cases where the entry block
had predecessors that assigned to the same register as an argument, this
overwrite was not detected.
Interim checkin of bug fixes to the SSA labeller

This follows the algorithm in the paper more closely, incorporating
the notion of filled and sealed blocks.  These are criticial for dealing
with intialization.  Also, this adds some bookkeeping phi nodes in the
entry block to stand in for arguments.  These are necessary when dealing
with loops (especially when the arguments aren't read in the entry).
Split the BasicBlock abstraction into a separate module

It isn't very re-usable, but the split declutters the main
labelling code.