hooks: avoid mutating self in call_extra
hooks: avoid mutating self in call_extra

call_extra previously worked by saving the exiting hookimpls, call
self._add_hookimpl() with all the extras, doing the call then restoring
the old hookimpls.

This is mostly fine but prevents the fields from being made Final, and
probably has some reentrancy issues, so I think it's much better to
avoid such tricks.

pytest-dev/pluggy,pytest-dev/pluggy