Tidy and DRY profile form; add error messages and required fields