Fix stalls in error handling of DBus updates
From the main commit:
bus: Write SPARQL queries asynchronously
Write SPARQL queries asynchronously, in all of our update(_async)
and batch operations. This means we wait for both the DBus message
and the FD write responses to consider the operation finished,
like we already do for deserialization.
This fixes situations where a series of SPARQL updates fail without the bus TrackerSparqlConnection user realizing of the failure through the closed pipe. Turning everything asynchronous makes the bus TrackerSparqlConnection able to stop as expected when the pipe is closed on the other end.
Closes: tracker-miners#328 (closed)