Use set_allocated instead of *mutable()=move() in ProducerEventProcessor
Use set_allocated instead of *mutable()=move() in ProducerEventProcessor

When transferring a sub-message from a `ProducerCaptureEvent` to a
`ClientCaptureEvent`, the pattern
```
ClientCaptureEvent event;
*event.mutable_foo() = std::move(*my_foo);
```
is replaced where possible by
```
ClientCaptureEvent event;
event.set_allocated_foo(my_foo);
```

This is because `mutable_foo()` causes the allocation of a new sub-message,
before this is moved to. The source sub-message is then deallocated with the
`ProducerCaptureEvent`. Instead, we can directly "steal" the sub-message from
the source, using `release_foo` followed by `set_allocated_foo`.

Methods that do this are renamed to `...AndTransferOwnership`, to make clear
that the argument must not have an owner before being used with `set_allocated`,
and `release_foo` instead of `mutable_foo` needs to be passed as parameter.

This is not a huge performance improvement, but it is measurable. When capturing
Trata while instrumenting
`eva::graphics::rendering::spatial_geometry::world_sphere() const` (the same
used in the automated performance testing), at the beginning of the loop the
CPU utilization of `OrbitService` goes from 80/85% (after the previous commit)
down to 75/80%.

google/orbit,google/orbit,google/orbit,google/orbit