Handle not existing keys in LevelDBStoredMap.get()

If a key couldn't be found, db.get returns null.
Check for that and don't try to deserialize those.
Use db.get in LevelDBStoredMap.containsKey

This should be faster then using an iterator.
Check for null in LevelDBStoredMap.put
Check for null key in LevelDBStoredMap.remove
Add hashCode and equals to LevelDBStoredMap
Implement Map.Entry.setValue() for LevelDBStoredMap
Add getByteKey and use it where possible

This allows us to call byteKey() once instead of twice
in put and remove.