Lots of fixes and featurelets required to specialise Mongoose w.r.t. network input:

* Path conditions indicating a stream exists at startup are now possible. They're symbolic FDs that are supposed to yield particular bytes when read, checked with memcmp.
* DIE users now indexed by context sequence number, and a map of live contexts retained to determine when an SI reference in the list is good. Ones which have been committed migrate to the patchrefs list; ones which have died necessarily lead to live more-local users (stores or arguments) in order to get their hands on the pointer or FD.
* For now, always commit contexts that feature read buffer checks, as I don't have a plan just yet for permitting it to do the read without a direct check.
* Pointers and FDs without a definitive instruction can now gain a new one when a load (or other fwd, e.g. a return inst) that is committed and certain takes over. It starts gaining patchrefs etc in the usual way.
* Pointers and FDs without a defn instruction (despite the above) and which require one for an as-expected check are squashed as they are loaded. Not done for loops yet.
* Allocations and FDs that are discarded are marked with isCommitted = true, commitVal = 0.
* Fix a missing case where use-in-failed-block could go undetected by DIE because the failed block is a header PHI.
* Preserve allocation and FD defn instructions from death by DSE's DCE passlet.
* Extend the negated pointer check to work when GEP is used to perform one of the component additions.
* Fix patch refs that were not getting carried out because a root-function-argument pseudo-allocation looked like it could be committed by reference to something else, rather than being itself a definition site.
* Avoid catching non-intrinsic functions in the pseudo-arithmetic pure call detection routine, as whilst this is valid for functions with an IA, it leaves orphan blocks behind and it's simpler to just kill them in post-commit optimisation.
* Support recvfrom as a FIFO-reading read-esque function.
* Fix store2memcpy: don't forget to sort the last block if it ends by reaching the block end rather than a conflicting memory op.