Tracing support for void result operations

Previously the client returned `nil` for operations with void results. This is going to change, and instead they will return `VoidResult` objects that are API compatible with `QueryResult`. The only reason is to have somewhere to put the trace ID when tracing is requested.