fixed some issues with native codegen register allocation, still some issues with returning from c functions

I'm going to tag this commit, because everything compiles cleanly right now
and the c codegen is basically complete, at least the backbone of it is, I
want to add a few more instructions and clean up the interface for simd words
but thats mostly superficial.