auto: start removing implicit vector copies from libstd (incl. fixing treemap iterator)

This also reworks the TreeMap lazy iterator to use `&mut` again, which closes #4763. It gets the performance of the set methods back in the sane ballpark that it was pre-INHTWAMA which is nice.

The first commit also removes some old cruft that worked around #3148.