Move EffectsOverride to expr.jl (#56187)
It makes sense that we originally added this to the compiler, but these
annotations are really a runtime feature that the compiler simply reads
to allow it to make additional assumptions. The runtime should not
semantically depend on the compiler for this, so move these definitions
to expr.jl. The practical effect of this right now is that Base gains a
second copy of this code. Post #56128, the compiler will use the Base
copy of this.
Split out from #56128.