added template default arguments for iterator_facade - Reference and Difference - to match boost::iterator_facade