Standardise benchmarks between std::num::strconv and std::num::fmt

This makes it easier to compare the performance of the different implementations. At the moment they seem comparable.

Initial benchmarks seems 30-50% faster.
Reduce reliance on `to_str_radix`

This is in preparation to remove the implementations of ToStrRadix in integers, and to remove the associated logic from `std::num::strconv`.

The parts that still need to be liberated are:

- `std::fmt::Formatter::runplural`
- `num::{bigint, complex, rational}`