Fix lots of bugs with the new memory-efficient large-program-capable new world order:

* Use WeakVH instead of Instruction* to point to instructions awaiting a patch, as they might be deleted before the relevant allocation or FD is created.
* Fix a couple of paths that assumed integers where SHADOWVAL_OTHER still.
* Fix a snag in the coveredBytes arithmetic that could lead to underlying maps being freed prematurely
* Fix readmultivalue path to recognise that no underlying map means an undefined value rather than being a bug as previously.
* Fix realloc instructions using an instruction rather than a pointer index to refer to the new allocation.
* Free memory and committed instructions from child loops even if they're disabled, as commit happens at function granularity.
* Zero-initialise uniqueParent
* Unregister allocations and FDs when they are discarded due to not committing the relevant subtree after all.
* Don't try to patch constant arguments; constants are available everywhere.
* Don't try to rerun the tentative loads pass over a function that never returns.