[boost] iterator_facade, decoupling of access and traversal?