Lint stability now checks macro arguments.

Closes #17185.
Replacing some deprecated calls by corrects ones.

In SmallIntMap impl{}.
auto merge of #17286 : vberger/rust/deprecated_in_macros, r=aturon

Closes #17185.

The stability lint will now check code generated by macro expansion. It will allow to detect :
- arguments passed to macros using deprecated (and others) items
- macro expansion generating code using deprecated items due to its arguments (hence the second commit, fixing such issue found in libcollections)

Checking is still done at expansion, but it will also detect a macro explicitly using a deprecated item in its definition.