Fixed a bug in regalloc.

Precolored nodes were not handled correctly (E.g., I didn't exclude
precolored node from assignable reg pool). That was causing some
strange bugs.

Minimal runtime GC interface seems to be working now. test-gc.cal tests
this by making a gcptr in some function and then call another function
to relocate the gcptr on the stack.

TODO:
- Add spill/reload impl in the register allocator. It surprised me that
  the regalloc is able to handle all of the existing programs using only
  14 general registers. It reminds me of my first compiler where 32 mips
  register were never enough...

- Finish the missing impl for callee-saved reg bitmap in the GC interface.

- Fix obvious bad code generated by the instruction selector. Maybe we need
  to do GVN and build DAG to do instr sel?

- Then we can start to implement some high-level programming languages!