[fidl] Migrate to new WireSyncClient API

This is part of a migration to stabilize the LLCPP API. In this step, we
are aligning the interface of WireSyncClient and WireClient. The main
changes to WireSyncClient are:

- Similar to WireClient, use the "->" operator to make FIDL calls with
managed memory allocation.

- Similar to an earlier change in `fidl::WireCall(...)`, use the
`client.buffer(arena_or_buffer_span)` accessor to make FIDL calls with
caller-controlled allocation.

- Removing accessors that expose a raw pointer/reference to the
channel, instead providing a `Bind` function to initialize a default
constructed client, and a `TakeClientEnd` function to de-initialize it.

- When binding a client endpoint, the client endpoint must be valid.

See https://groups.google.com/a/fuchsia.dev/g/fidl-dev/c/nF72xpPL4gU

Bug: fxbug.dev/87683
Change-Id: I45fa41c66241ead10567f46c7a9fc3ec9cd457ee
6 files changed