[qtcontacts-sqlite] Join detail tables so we make a single query to read details

Rather than reading all detail tables in parallel queries, join them
all into a single query of the Details table.
[qtcontacts-sqlite] Cache prepared detail queries