Simplify and fix TrivialCallCcToReturn

Perform all the replacements of the exit proc with et.Return() in one
pass and then check for remaining users of the exit proc in a second.
This simplifies the code and fixes a corner case when passing an exit
proc as an argument to another procedure
Greatly simplify CellRefRangeList

Instead of allocating CellRefRange nodes out of a fixed size
DynamicMemoryBlock just embed it inside AbstractRangeRef. This means we
allocate the CellRefRange on the stack for free. This simplifies and
speeds the CellRefRangeList greatly

This is a first step to moving to codegen to its own thread safe shadow
stack implementation shared with the AbstractRef infrastructure.
Add support for resume instruction

This is needed for exception support
Implement support for invoke instruction

This is part of exception support

This factors out the main logic of the call implementation in to a
CallingConvCallLikeInstructionBody helper function. The invoke unit
tests are directly stolen from the call ones.
Support for declaring/calling vararg fucnctions

The C++ exception personality on most Unices (__gxx_personality_v0) is a
vararg function. This adds support for vararg definition, declarations
call and invokes
Switch to Scala 2.10.4

This is a simple upgrade with no changes required elsewhere in the code