make metadata storage pluggable

I didn't see a need to create a separate module for Derby since, it will be the default.