VarStreamArrayIterator returns a reference to a just-computed internal
value. Change it to iterate over const ValueType to avoid allowing
clients to mutate the internal state, and to drop the
non-const-qualified operator*().
The removed operator*() was from 175d70ee5c2f03f6 to get
iterator_facade_base::operator->() working, and this fixes the root
cause instead: setting T to const ValueType causes
iterator_facade_base to infer PointerT as const ValueType*.
Ironically, this is the last blocker for removing the const-incorrect
overload of iterator_facade_base::operator->(), whose presence
triggered adding the workaround in the first place :).
This is an alternative to https://reviews.llvm.org/D113796.