Add validation for signin/signup

Closes #2976

- Move logic to signup controller
  - Add ValidationEngine mixin to signup controller
  - Add signup validator with code from clientold login view
- Add signin validator and integrate into signin controller
- Add validation to forgotten controller
  - Switch to button action to support hitting enter in text field to submit
- Clear all notifications in notifications.closeAll
I think what is happening is that this second form submit was clicking before the button was re-enabled and not submitting the second attempt that causes the spam prevention message to show.  The invalid password dialog always showed before, it just didn't keep you from clicking the login button immediately after already pressing it like now.

The test should essentially be the same as before, just instead of waiting 200 milliseconds for the second submitting of fake user data, it's waiting until that notification from the first submit happens.  I think it's still true to the original test, it still runs pretty fast in sequence to test spamming the submit.