Rewrite $a ?: $b to empty($a) ? $b : $a if $a is a variable

A behaviour change, yes, but it doesn't break backwards-compatibility. I'm writing an RFC for this as we speak, just to clarify.