To defend against overloaded unary &. This includes the constructors of both iterators, and
istream_iterator::operator->.

Note that {i,o}stream_type are specializations of basic_{i,o}stream, but the constructors might still
pick up an overloaded & via the traits template parameter. This change also provides consistency
with std::experimental::ostream_joiner (which uses std::addressof).