[qtcontacts-sqlite] Do not dereference null table pointer

If we cannot access the table, the end iterator should be the same
as the begin iterator.

Also increase the time we wait to acquire a table lock, to account
for high-load periods such as during startup.
[qtcontacts-sqlite] Ignore results when transient data is inaccessible

Transient reads are permitted to fail without aborting; if so, do not
use the data returned from the failed read.
[qtcontacts-sqlite] Ensure all detail table queries are finished

If we fail to prepare a details table query, return an error and
ensure that any queries that were activated are finalized.