SHIRO-379: patch applied but with improvements (using concurrent read/write locks)

git-svn-id: https://svn.apache.org/repos/asf/shiro/branches/1.2.x@1479202 13f79535-47bb-0310-9956-ffa450edef68