If the path constraint already includes BadPtr(x) and we try to
dereference x then we should immediately kill off this symbolic
execution path.
Make sure we do the right thing if the atomic rule is enough by itself
to show that a crash is impossible.
We're currently ignorign uses of variables in AssertFalse expressions
for deadcode analysis.  This can lead to lots of extra
use-of-uninitialised, which then screws us over later.  Stop doing
that.