Refactoring session handling.
Adding ThreadLocal for MessageDigest.
Using SystemnanoTime instead of System.currentTimeMillis.
Adding licence and credit to NOTICE file.