Extract application permissions from a drools file and into Java code.

This is in preparation for the move to CDI.
Testing of this pull request must ensure that the same level of permissions in the drools file is still maintained. The drools file is still kept for reference. It may be removed after this pull request is QA'd and merged.
Maybe the whole file.  In fact, many of the ifs, elses and fors are a bit off in various files.