Added a 'more optimal' check to the Register class, a register can see if
it is better to keep itself in the tree.

Can free any arbitrary register, the type (virtual, work, allocatable) is determined automatically.

The register needed for a calculation is added to the new field of the Node class: register
Merge branch 'master' of https://github.com/hunthunt2010/CompilersGroup2