Add InterferenceGraph class
Initial calculation of live range

This isn't the complete algorithm, it will only work within a single
basic block at the moment.
Output the interference graph
Fix bug with running pass in BF or DF order
Remove unused BasicBlock methods
Improve slightly the interference graph creation
More improvements to the interference graph

Now search through all of the enclosing loop headers. Still doesn't
handle Phi instructions well.
Add needsRegister to Value class

This is used by the register allocator to determine if the value needs
to be assigned a register. Some instructions such as branch or return
don't produce a value and therefor don't need to be put into a register.
Their arguments still need to be considered live though.
Keep track of where phi args come from

This uses that information to calculate the live range, hopefully
correctly.
Add setColor method to Value classes
Add method to color the interference graph
Color the graph to test the register allocator
Merge branch 'register_allocation'

This does a very simple coloring to allocate registers to the result
values.

Conflicts:
	src/ir/BasicBlock.java