DO NOT MERGE YET: Re-structuring storage init.

Hi Nick, this is a pull request to show you what I think is a possible way of re-wiring the storage/index.js so that it's more like an interface. I'm interested in your thoughts on it.

Please check if I'm going down on the right path. Also, where do I want to call <code>moduleSelector(settings);</code> from?

I'm not sure if I can call it from <code>storageModuleInterface</code> I defined unless I pre-define some kind of dummy object for <code>storageModule</code>.

Alternate ideas:

We could also possibly (although I don't know enough about JavaScript yet to see if this actually makes sense):

var storageModuleInterface = {
        init : function(_settings) {
            moduleSelector(settings);
            return storageModule.init(_settings);
        }
...........
}

storageModuleInterface.init();
module.exports = storageModuleInterface;



Or alternatively, a somewhat simpler model, but one that changes the existing external interface:

......
        init : function(_settings) {
            moduleSelector(_settings);
            return storageModule.init(_settings);
        }
......
Thanks!
Yes, we don't need the `dummySettings` stuff.

As you've done with `init`, each of the other functions in the interface should be defined functions that just delegate the call to the corresponding storageModule function.

For example:

    saveFlows: function(flows) { return storageModule.saveFlows(flows); }

This allows the module to export before `storageModule` has been defined.

You'll need to make sure you get the function signatures right and pass the arguments through