[C#] Flight client does not allow putting zero batches
Describe the bug, including details regarding any error messages, version, and platform.
As part of writing a Flight integration test client for .NET (#44361) I ran into a limitation where the C# client can't handle the primitive_no_batches test case because it doesn't send the schema until you write the first record batch.
For comparison, the PyArrow and C++ implementations require passing the schema when calling do_put, and always send the schema even if no batches are sent: https://arrow.apache.org/docs/python/generated/pyarrow.flight.FlightClient.html#pyarrow.flight.FlightClient.do_put
Component(s)
C#
Somewhat related, the Java and C++/Python clients also allow sending metadata-only messages without a record batch.
Issue resolved by pull request 45315 https://github.com/apache/arrow/pull/45315