Refactored to create a `changeValidator` object that will properly tell you if a resize or a data change requires a refresh. Closes #3299.