Gender and Birth date should not be required for persons linked to providers or users

- Moved the checks for gender from PersonValidator and put it in PatientValidator instead.
- Updated PatientValidator to check for the presence of birthdate.
- Updated tests which create Patients to set birthdate.
- Updated the xml which is used to create test data for patients to include birthdate.
- Some refactoring in the validator to extract functionality into methods to make code cleaner.