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

git-svn-id: https://svn.apache.org/repos/asf/shiro/trunk@1479203 13f79535-47bb-0310-9956-ffa450edef68