std::trie: add an mutable-values iterator.
std::trie: remove some obsolete internal iterators.
std::trie: use macros to share code between the iterator implementations.
std::trie: Add some iteration/search benchmarks.
std::trie: make lower_bound and upper_bound about 15% faster.

I believe this is mainly due to code-size reduction.

Before:

    test [...]::bench_lower_bound ... bench:       818 ns/iter (+/- 100)
    test [...]::bench_upper_bound ... bench:       939 ns/iter (+/- 34)

After:

    test [...]::bench_lower_bound ... bench:       698 ns/iter (+/- 60)
    test [...]::bench_upper_bound ... bench:       817 ns/iter (+/- 20)
extra::treemap: use the dummy-macro trick with items to make the
iterator macro properly hygiene.

Requires less repetition of `mut` or not too.