[biserver-8382] workaround deadlocks with CompiledPermissions' clearCache and canRead

Please thoroughly review this.

Objective of this is to change how the locking inside CompiledPermissions canRead is made, to prevent deadlocks with transactions that need to call clearCache while holding a writer lock that can block PentahoEntryCollector.collectEntries.
This isn't supposed to change behaviour of CompiledPermissionsImpl in any other way.

More info in [BISERVER-8382] (http://jira.pentaho.com/browse/BISERVER-8382)