Iterators use this class to keep from getting out of sync with
their underlying data. When created, the iterator gets a
Validation instance. If the underlying data changes, the Validation
becomes invalid. Usually iterators will throw exceptions if accessed
after becoming invalid.