tweaks for inter-procedural constraint back-prop'
note that the changes for `isnothing` and `ismissing` aren't necessary,
but they reduce the number of method definitions for good reason;
the less the number of methods they have, the better we can
back-propagate type constraints, because even after a package defines
their own new methods for them we can keep to use our `InterConditional`
logic as far as far as the number of methods is
[≤3](https://github.com/JuliaLang/julia/blob/5c6e21edbfd8f0c7d16ea01c91d1c75c30d4eaa1/base/compiler/types.jl#L119)