### Description

using `breeze testing tests` recently I noticed that the way to specify which tests to run is very confusing:
 * `--test-type` supports specifying one type only (or `All`), allows specifying which provider tests to run in details, and is ignored if `--run-in-parallel` is provided (from what I saw)
 * `--test-types` (note the `s` at the end) supports a list of types, does not allow to select specific provider tests, and is ignored if `--run-in-parallel` is NOT specified.

I _think_ that the two are mutually exclusive (i.e. there is no situation where one is taken into account and the other isn’t ignored), so it’d make sense to merge them.

Definition of Done:

- --test-type or --test-types can be used interchangeably, whether the tests are running in parallel or not (it'd be a bit like how `kubectl` allows using singular or plural for some actions, like `k get pod` == `k get pods`)
- When using the type `Providers`, specific provider tests can be selected between square brackets using the current syntax (e.g. `Providers[airbyte,http]`)
- several types can be specified, separated by a space (e.g. `"WWW CLI"`)
- the two bullet points above can be combined (e.g. `--test-type "Always Providers[airbyte,http] WWW"`)

### Use case/motivation

having a different behavior for a very similar option depending on whether we are running in parallel or not is confusing, and from a user perspective, there is no benefit to having those as separate options.

### Related issues

_No response_

### Are you willing to submit a PR?

- [ ] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)

help="Test timeout. Set the pytest setup, execution and teardown timeouts to this value",
    default=60,
    type=IntRange(min=0),
    show_default=True,
)
@option_db_reset
@option_run_in_parallel
@option_parallelism
@option_skip_cleanup
@option_debug_resources
@option_include_success_outputs
@click.option(
    "--test-types",
    help="Space separated list of test types used for testing in parallel.",
    default=" ".join(all_selective_test_types()) + " PlainAsserts",
    show_default=True,
    envvar="TEST_TYPES",
)
@click.option(
    "--full-tests-needed",
    help="Whether full set of tests is run.",
    is_flag=True,
    envvar="FULL_TESTS_NEEDED",
)
@click.option(
    "--upgrade-boto",
    help="Remove aiobotocore and upgrade botocore and boto to the latest version.",
    is_flag=True,
    envvar="UPGRADE_BOTO",
)