cluster: add _mongoc_cluster_command_early().

This is meant for sending a command before the cluster has been
initialized. It forces the cluster to start-up and executes the
command.

The error value can be used to notify the call chain of connection
failure.

This is primarily meant for mongoc_client_warm_up() and may not be
useful in other scenarios where we have already connected.
client: warm up client to determine wire-version to use.

This will help with situations where we need to do an insert but do
not yet know what our negotiated wire version is.

Functions needing to know the wire-version should first call the
private _mongoc_client_warm_up() function.

It will either result in a failure, (and error set), or TRUE indicating
success and client->cluster.wire_version is valid.