work-around for msvc limitation that causes has_iterator<> to fail for structs named iterator

Only applies to msvc-10.0 and earlier. This fixes the failures in boost.accumulators on those versions of msvc. I simply specializes `boost::range_detail::has_iterator` for all the classes and structs at namespace scope in boost named `iterator`. A dumb fix for a dumb compiler bug, but hey, it works.

Ran full range regressions for all versions of msvc from 8 through 12. No new failures.