Make the logic in lirToMachineCode a little clearer.
Assert the non-existence of phi nodes in lirNodeToMachineInst.
Move some work into runtime-x86.S

Some code common to every allocation slow path can be moved to
runtime-x86.S.
Add new command line options for compile.sh

The --keep-intermediates option retains the .S file.  This is useful
when running the compiled executable under gdb.

The --release-mode option compiles the runtime with -O3.
Annotate generated assembly only on request.

Comments in assembly can be turned on by --annotate-assembly.  Defaults
to off.
Neater use of CmdArgs.

Clean up output from --help.
Add a peephole optimization pass.

As of now the pass does only one trivial elimination -- it removes
instructions of the form `movq %reg %reg`.
Print message when panicking.
Clean up panic messages.

Cosmetic change.
Rename Str and LitStr to more descriptive names.