unit tests for storage driver implementation

This PR contains a new package named ``test`` under the storage package. Any new storage drivers should pass all unit tests inside this package as mentioned in #61
Either shounds fine. Close seems to be good for our purposed. But we should say in the doc what we expect. If we expect Close() to clear state or leave it implementation-defined (which seems to be what we want to do)