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-2218: remove missed direct method calls in api classes
TRUNK-2218: remove direct method calls in AlertServiceImpl class
TRUNK-2218: remove direct method calls in MessageServiceImpl class
TRUNK-4216 - Equals method should not assume anything about the type of its argument
TRUNK-2218: remove direct method calls in MessageSourceServiceImpl class
Merge pull request #543 from dkithmal/TRUNK-2218

Trunk 2218
TRUNK-3283 Add observation to an encounter: the field person can be overwritten, and it leads to inconsistent behaviour after saving
TRUNK-2218: remove missed direct method calls
Merge pull request #544 from dkithmal/TRUNK-2218

TRUNK-2218: remove missed direct method calls
Merge pull request #540 from dszafranek/TRUNK-4216

TRUNK-4216 - Equals method should not assume anything about the type of its argument
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