Converting DataFrame with nullable types to DataFrame with non-nullable types?
Is there a way to convert DataFrames containing nullable types to DataFrames containing the equivalent non-nullable types?

For example:

```python
>>> import pandas as pd
>>> a = pd.DataFrame()
>>> a['a'] = pd.Series([1, None, 3], dtype="Int32")
>>> a['b'] = pd.Series([True, False, None], dtype="boolean")
>>> a
      a      b
0     1   True
1  <NA>  False
2     3   <NA>
>>> a.dtypes
a      Int32
b    boolean
dtype: object
```

Is there a way to convert this to a DataFrame with `int32` and `bool` dtypes, assuming the user can specify `na_values` for those? Ideally, if there are no nulls in the input, then the user wouldn't even have to specify `na_value`.

### Context:

cuDF is [moving in the direction](https://github.com/rapidsai/cudf/issues/5754) of returning nullable Pandas objects when the `.to_pandas()` method is called on cuDF objects. Our hope is that this is a step in the right direction of the community adopting arrow-like nullable types. In the near term, however, this will break user workflows (e.g., https://github.com/rapidsai/cudf/issues/5928) and it would be fantastic if we could point users to a convenient way to recover "classical" Pandas objects from what we return.

cc: @brandon-b-miller @kkraus14 