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.
@hswolff Cool, thanks for the info.  Since `localfilesystem` is only used in one spot as far as I can see, do you think we could just take the plunge and export the constructor, or do you think there'd be fallout?