[range] Add erase() taking non-mutable iterators (in-line with C++11 std::vector) + tests.