Introduced wasValidated(). Blah.

We can't just hook layout() because then we emit the _validated signal *before*
we mark the Root as validated. So if the validated signal results in any
changes being made to the UI, those won't trigger a new validation cycle as
they should.

So we have to have a wasValidated() hook which is called after validated is set
to true, so that we can invalidate in wasValidated. Messy.