Fix bizarre bug where validation signal doesn't fire in certain cases

I still haven't figured out in particular what was causing this, but rewriting
the validation signal for primitive formlets in a more straightforward manner
seems to have fixed it. Must be some peculiar subtlety of lifting.