Remove abc::range::operator~()

Not intuitive, and it returns a range with an invalid begin/end pairs.
Add abc::make_range() utility function
Use std::move() to initialize abc::range members in constructor
Use std::move() to initialize abc::range::iterator member in constructor
Suppress unnecessary GCC warning
Support measuring partial and total time in abc::perf::stopwatch
Remove abc::testing::test_case::log_duration()
Split up main overload of abc::map::key_lookup()

Now divided in lookup_key(), lookup_key_or_find_empty_bucket() and
find_empty_bucket(). This is in reaction to a bug found in key_lookup()
that was caused by the 3 different match criteria being mashed into a
single if statement; making the if more robust would probably make it too
slow.
Add high-collisions test for abc::map
Prepare for more de-templating of abc::map code