Two fixes for issue #315 --allocateOnlyNeededShadowRegisters breaks code, eats a register

This attempts to fix two bugs associated with issue #315. One deals with inconsistencies in constructing data structures for --partitionIslands, the other deals with failure to use a shadow register under --allocateOnlyNeededShadowRegisters