open() now returns Promise

Instead of doing db.ready() or db.error(), db.open() returns a promise
to do catch(), then() or finally() on.