extracted form validation

Form validation is now a mixture of annotation driven form validation for easy things (like @Email or @Length) and a Validator class for more complex things (like password_confirmation requiring password to match)