ENH: Allow dropna to accept floats [0, 1] as thresh values
#### Is your feature request related to a problem?

_I wish I could use pandas to_ drop NaN values using a threshold that is a fraction of the total column/row, not an absolute number. See detailed example below.

#### Describe the solution you'd like

**thresh** : int or float, optional
    Where int, requires that many non-NA values and where float, require that fraction of non-NA values.

#### API breaking implications

Only needs to extend it to accept floats as well as ints.

#### Describe alternatives you've considered

None. IMHO this solution is too simple and effective to consider other options.

#### Additional context

##### Example

```python
import numpy as np
import pandas as pd
import missingno as msno


X = pd.DataFrame(
    {
        'ones': np.ones(50),
        'rand': np.random.normal(size=50),
        'linear': np.linspace(1, 50),
    }
)

y = 3 * np.sin(X.linear) + X.ones + X.rand
y = y.rename('sin_target')

X.loc[4:10, 'ones'] = np.nan
X.loc[4:20, 'rand'] = np.nan
X.loc[40:45, ['linear', 'ones', 'rand']] = np.nan
y.loc[23:25] = np.nan

Xy = pd.concat([X, y], axis=1)

msno.matrix(Xy)

```
![image](https://user-images.githubusercontent.com/11645712/112819993-10142700-907d-11eb-83b3-8696bc0841e4.png)

```python
Xy_t = Xy.dropna(thresh=0.7 * len(Xy), axis=1)
# Proposed: Xy_t = Xy.dropna(thresh=0.7, axis=1)
msno.matrix(Xy_t)
```

![image](https://user-images.githubusercontent.com/11645712/112820859-f9ba9b00-907d-11eb-9f4f-56673f325563.png)


```python
Xy_t = Xy.dropna(thresh=0.4 * Xy.shape[1], axis=1)
# Proposed: Xy_t = Xy.dropna(thresh=0.4, axis=1)
msno.matrix(Xy_t)

```
![image](https://user-images.githubusercontent.com/11645712/112820822-eb6c7f00-907d-11eb-8f3f-d2ece7b8e40b.png)


It should be obviously that this is very useful in cases where the df axis size is liable to change, and where using piped functionality (saves the extra line of code calculating `thresh_int = 0.4 * Xy.shape[1]`).