Specifiy -std=c++98 when building LLVMExtra.cpp.

This fixes the build on OS X when using LLVM 3.3
Switch to use LLVMCreateMemoryBufferWithMemoryRange().
Remove unused function.
Make function private.
Fix indentation in generated file.
Const correctness.
Separate tracing from the main interpreter loop.
Rename JITReturn -> InstReturn
Make InstReturn an enum class.
Rename JITInstructionFunction_t-> InstFunction_t
Rename JITInstructionFunction.h -> InstFunction.h
Always store the instruction return value in the retval variable.
Increment cycle count as soon as we start executing the instruction.
Make yielding instructions jump to the register write back code instead of
duplicating it.
Fix failing port tests by incrementing the cycle count at the end.
Don't call emitRegWriteBack() when emitting code for a kcall instruction.

The only reason for calling it before was so the PC would be set directly
but we can handle this by passing the nextPc into exception().
Only emit regWriteBack label if it is used to avoid unused label warnings.
Rename trace -> instructionBegin, traceEnd -> instructionEnd.
Refactor tracing to avoid a second buffer for events / exceptions / etc.

Delay printing of the start of the instruction line until the first
register write if there is one or until the instruction has completed.
This ensures that when we get an event / exception / interupt we won't be
in the middle of printing a line so we can output trace information
straight away without an extra buffer.
Use llvm::raw_ostream instead of std::ostream in the tracer.

As well as being faster this means we get terminal colors on Windows.