More unit tests for storage drivers and a bug fix for memory storage

This PR contains several unit tests. It also contains a bug fix for memory storage. The bug could be reproduced with the newly added unit tests in this PR.
Sorry, I guess I'm asking why we're making this change :) are we trying to optimize by not re-allocating the slice?