Create functions in non-terminated loops too, and permit bitcasted function pointers as constant foldings results
Two quick hacks:

1. Don't ignore things that clobber errno (special case of the needed must-mod-ref vs. may-mod-ref distinction)
2. In optimistic mode, there's little point trying to forward loads whose pointer operand remains unresolved. Don't try.
Forbid subqueries whilst in the PB solver.

This is because there was the possibility of infinite recursion, re-entering the loop and finding the same definer repeatedly. I may try to support subqueries with backedges properly in future, possibly by retaining the visited-set in the new context.

Also fix: forbid searching for definers for const ptr null using same mechanism as filter for const-global searches.
Introduce a temporary class of functions that aren't allowed to expand within loops, and annotate some printf family functions for now.
Fix 2 bugs:

1. In optimistic mode there's no point looking through a must-alias store that's not yet defined.
2. Alloca instructions should provide a PB defn when yielding null.
Permit load-forwarder to assume that if it's forwarding {concrete_ptr, null} then we may assume it's not null.

This is actually not quite proper; we should duplicate the crash if it can really happen. TODO: drive path conditionals to do this better.
Add reporting to help identify what's bringing LPBA down, and fix a couple of cases where overdefs were reported where undef is more appropriate.
Allow must-alias against a pointer that may be null, and allow merging in undefs, which the cache can contain for values that are never defined outside loop scope.

This should only happen for globals and mallocs.
Allow load(null) -> null. Really this needs to be undef.

TODO: fix this properly when writing multi-load paths soon.
Add really basic support for loading off pointers which may have several different, concrete addresses