Followup to #21644 and #23532
This would match how we do things in the C# client. This would mean making HubProtocol public, along with some others like MessagePackHubProtocol, JsonHubProtocol, InvocationBinder, and TransferFormat. Should also change HubConnectionBuilder.withMessagePackHubProtocol() to withProtocol(protocol).