Asynchronous browser storage with multiple back-ends (IndexedDB, WebSQL, localStorage)