Make ChannelArgument extensible with custom values.
Make ChannelArgument extensible with custom values.

Also includes a refactoring, replacing most enum cases with factories that create the actual underlying enum cases.

grpc/grpc-swift,grpc/grpc-swift,grpc/grpc-swift,grpc/grpc-swift,grpc/grpc-swift