Eliminate unnecessary allocations by using single-element writes (#1965)
Using the collection-based write was wrapping single elements into a collection and write(contentsOf:) was being called.
This always results in the element being wrapped in a Deque in the NIOAsyncWriter.
This commit moves the write(element:) method to be required for the RPCWriter protocol so that we can call the single element write and avoid this boxing to save some allocations.