This commit breaks out the logic of placheolder rewriting
into its own preprocessing step.
The only functional change from this is that the preprocessing
step (where extra `r: 'static` constraints are added) is
performed upstream of Polonius legacy, finally affecting
Polonius. That is mostly a by-product, though.