Form validation with errors, flash messages, user email uniqueness