addressbook: Fix cancellable handling if not in a transaction

If not in a transaction, ebsql_exec() will set a temporary GCancellable
for the operation (transactions set their own), but would then
erroneously clear *all* cancellables after the query finished; even
those set by transactions.

Coverity issue: #1214491

https://bugzilla.gnome.org/show_bug.cgi?id=730374
camel: Avoid an unlikely division by zero failure

Coverity issue: #1061270

https://bugzilla.gnome.org/show_bug.cgi?id=730376
addressbook: Strengthen an assertion to avoid negative bit shifts

This should never happen in practice, but it is good to be completely
explicit in the assertion.

Coverity issue: #1214485

https://bugzilla.gnome.org/show_bug.cgi?id=730378