create client during start() call with useIndexedDb preference
This way the logic to switch between indexeddb/memory store
can be made higher up (in Lifecycle) depending on
the error (e.g. VersionError) and user input (a dialog)
Also merged replaceUsingCreds and start as they are
always called together and one should not be called without
the other.