Added test case to expose problem with register allocation.
No need to reset last allocated register in compileHead, it is already reset in compileClause.
Added test chase to check that temporary registers are not overwritten by arguments.
Implemented variable allocation fix, to ensure temporary registers are always higher than argument registers within a clause.
Implemented the instructions for unsafe and local variables.