An IndexedDB wrapper that exposes a promise-based API where possible