REVIEW: [Backport NXCM-5448 to nexus-oss-2.6.x]

 * cache WildcardPermission hash because its contents never change after construction and calculating the hash is expensive (involves collections of collections of strings)
 * resolve role permissions using single read lock, rather than repeatedly taking and dropping lock for the role and each of its sub-roles/privileges
 * add memory-sensitive cache to XML permissions resolver
 * move resolver cache check to before we even attempt to read-lock the configuration (note: this is only viable if we don't need to invalidate the resolve cache when DynamicSecurityResources change)
 * trigger clearing of authorization caches when security configuration is rebuilt due to changes in dynamic sources

This is a backport of the performance fixes from #229 and #232

https://issues.sonatype.org/browse/NEXUS-6118