Moves storage module to use prototypes for inheritance and structure.

addresses #2852

- Moves storage modules to use prototypes and to create prototypes
that inherit from the base storage ctor.
Updated!  Not sure it was necessary but at least it gets us to start thinking that way.