ENH: enhance pivot_table to keep rows that containing any missing values
#### Is your feature request related to a problem?

I wish I could keep rows in a dataframe where any data point is missing while using pivot_table method.

#### Describe the solution you'd like

`pivot_table` should get a new parameter `keep_na` that enables keeping the rows of the dataframe containing NANs. Alternatively the current behaviour of  `drop_na` could be enhanced to handle not only the all NaN rows, but any NaN rows as well.

#### API breaking implications

`keep_na` must be False (or None) by default to make it backward compatible.

#### Describe alternatives you've considered

The current workaround is to fill the index columns manually with some dummy shit, appy pivot_table, then revert dummy values to NaNs. 

#### Additional context

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

df = pd.DataFrame({'A': ['a', np.nan, 'a', 'a'], 'B': ['b', 'b', np.nan, 'b'], 'X': [5, 10, 15, 20]})
     A    B   X
0    a    b   5
1  NaN    b  10
2    a  NaN  15
3    a    b  20

output:
pd.pivot_table(df, index=['A', 'B'], values=['X'], aggfunc=np.sum)
   A  B   X
0  a  b  25

expected output:
pd.pivot_table(df, index=['A', 'B'], values=['X'], aggfunc=np.sum, keep_na=True)
     A    B   X
0    a    b  25
1  NaN    b  10
2    a  NaN  15

```
