**Description**

We would like to be able to load data to **existing** BigQuery tables without having to specify schema_fields/schema_object in `GCSToBigQueryOperator` since table already exists.

**Use case / motivation**
<details>
  <summary>BigQuery load job usage details and problem explanation</summary>
  
We create BigQuery tables/datasets through CI process (terraform managed), with the help of Airflow we updating those tables with data.
To update tables with data we can use:
Airflow 2.0 operator: GCSToBigQueryOperator
Airflow 1.* operator (deprecated) GoogleCloudStorageToBigQueryOperator 
However those operator require to specify one of 3 things:
1. schema_fields - fields that define table schema
2. schema_object -  a GCS object path pointing to a .json file that contains the schema for the table
3. or autodetect=True
In other cases it will:
```
 raise ValueError('At least one of `schema_fields`, `schema_object`, '
                                 'or `autodetect**=True**` must be passed.')  
```
_Note: it does not actually says that `autodetect` must be `True` in exception - but according to code it must be specified as True, or schema should be used otherwise._

But we already have created table, and we can update it using 
`bq load` command. (which Airflow operators mentioned above are using internally)

When using `bq load` - you also have an option to specify **schema**. The schema can be a local JSON file, or it can be typed inline as part of the command. You can also use the `--autodetect` flag instead of supplying a schema definition.
https://cloud.google.com/bigquery/docs/loading-data-cloud-storage-csv#bq

When you specify `--autodetect` as True - BigQuery will try to give random names to your columns, e.g.: 'string_field_0', 'int_field_1' - and if you are trying to load into **existing** table - `bq load` will fail with error:
'Cannot add fields (field: string_field_0)'}.'
Same way Airflow operators like 'GCSToBigQueryOperator' will fail.


However **there is also an option NOT to specify** `--autodetect` or specify `--autodetect=False` and in this case `bq load` will load from CloudStorage to **existing** BQ table without problems.
</details>


Proposal/TL;DR: 
Add an option **not** to specify `--autodetect` or specify `--autodetect=False` when  write_disposition='WRITE_APPEND' is used in GCSToBigQueryOperator. This will allow an operator to update **existing** BigQuery table without having to specify schema within the operator itself (it will just be updating **existing** table with data).


self,
        source_format: str,
        src_fmt_configs: dict,
        valid_configs: list[str],
        backward_compatibility_configs: dict | None = None,
    ) -> dict:
        """
        Validates the given src_fmt_configs against a valid configuration for the source format.
        Adds the backward compatibility config to the src_fmt_configs.
        :param source_format: File format to export.
        :param src_fmt_configs: Configure optional fields specific to the source format.
        :param valid_configs: Valid configuration specific to the source format
        :param backward_compatibility_configs: The top-level params for backward-compatibility
        """
        if backward_compatibility_configs is None:
            backward_compatibility_configs = {}
        for k, v in backward_compatibility_configs.items():
            if k not in src_fmt_configs and k in valid_configs:
                src_fmt_configs[k] = v
        for k, v in src_fmt_configs.items():
            if k not in valid_configs:
                raise ValueError(f"{k} is not a valid src_fmt_configs for type {source_format}.")
        return src_fmt_configs
    def _cleanse_time_partitioning(