refactor DeallocatingVector, apply boost::iterator_facade
refactor DeallocatingVector, apply boost::iterator_facade