Fixes build with Boost 1.57

Just applied what @Oberon00 commented on #22.
This change and the next one will break with Boost < 1.57. I found that boostorg/iterator@dc96d371faf87a88c04057861136c9dfa68103d7 added that namespace change to avoid some ADL issues. I would guess that these are the same issues that this whole code block aims to solve, so it would be best to keep `boost::operator` but put the whole block in `#if BOOST_VERSION < 105700`.