Performance tweaks

- Using LRUMap for SHA3 hashing
- Re-using final byte-arrays to avoid mass creation of byte[] objects
- Some minor cleanup