adds an fallback for APPLICATION_DATA_DIRECTORY

as described in ticket TRUNK-3934: in some deployments using an application server such as Tomcat, we can not write to the current users home dir and instead should use a more generic and/or appropriate path
TRUNK-4160 ProgramWorkflowService.retireProgram always throws Exception
TRUNK-4160 Review comments
TRUNK-4146:add unit test to prove return distinct drugs when search parameter match multiple times with drug_name
TRUNK-3283 Add observation to an encounter: the field person can be overwritten, and it leads to inconsistent behaviour after saving
TRUNK-3898: Retired and hidden ConceptMapTypes should be at the end of the list
Merge pull request #549 from lrozanski/TRUNK-3898-master

TRUNK-3898: Retired and hidden ConceptMapTypes should be at the end of the list
Merge pull request #542 from tadeitto/TRUNK-3283

TRUNK-3283 Add observation to an encounter: the field person can be over...
TRUNK-4223: SonarQube - instanceof will always return true
TRUNK-4225: SonarQube - Avoid Catching Throwable
TRUNK-4224 SonarQube - method invokes inefficient Number constructor; use static valueOf instead
Added automated tests for org.openmrs.api.db.hibernate.HibernatePatientDAO and org.openmrs.api.db.hibernate.PatientSearchCriteria
Refactored org.openmrs.api.db.hibernate.PatientSearchCriteria
Added and implemented org.openmrs.api.db.PatientDAO#getPatients(String,Integer,Integer)
Added and implemented org.openmrs.api.db.PatientDAO#getCountOfPatients(String)
Marked org.openmrs.api.db.PatientDAO#getPatients(String,String,List,boolean,Integer,Integer) as deprecated
Marked org.openmrs.api.db.PatientDAO#getCountOfPatients(String,String,List,boolean,boolean) as deprecated
Moved tests from org.openmrs.api.db.hibernate.HibernatePatientDAOTest to org.openmrs.api.db.PatientDAOTest
Merge pull request #554 from kkaczmarczyk/TRUNK-4224

TRUNK-4224 SonarQube - method invokes inefficient Number constructor; use static valueOf instead
TRUNK-4229 SonarQube - Array is stored directly
Merge pull request #553 from lrozanski/TRUNK-4225

TRUNK-4225: SonarQube - Avoid Catching Throwable
TRUNK-4046 hide start visit button for dead patients
TRUNK-4146:change the test case and test data set
Merge pull request #555 from kkaczmarczyk/TRUNK-4229

TRUNK-4229 SonarQube - Array is stored directly
Merge pull request #552 from mszukalski/TRUNK-4223

TRUNK-4223: SonarQube - instanceof will always return true
TRUNK-4228: SonarQube - Nullcheck of value previously dereferenced