i64: Generate cleaner code for ReturnInst

Introduce move_part_to_reg() as a generalisation of move_to_reg().
i64: Generate cleaner code for saving a function's return value in CallInst

Introduce spill_part() as a generation of spill().
i64: Handle i64 values in phi nodes