add reverse adaptor, fix bug in join_range iterator decrement