Fix race when the database did not exist before starting.

Fix race when the database did not exist before starting.

Parallel calls to `mem3_util:ensure_exists/1` can both find that the database does not exist and when trying to create it, one will loose out and receive `file_exists` back from `couch_server:create/1` via `mem3_util:ensure_exists`, instead of expected `{ok, Db}`.

Fixed by re-attempting `couch_db:open/1` after finding that the file could not be created.

A test for one specific occurrence is in dbcore/37960-db-creation-race, see git log there, `make check`.

BugzID: 37960
It definitely would crash. I thought it was not the tidiest to return an error code of the opening from ensure_exists. If I understand your point correctly, you feel the less generic code should be top of the callstack?

If I were to change this now, how would I go about it, given the PR is already merged?

Thx