Groupby(observed=False) behaviour does not follow description in docs for non-categoricals
#### Code Sample, a copy-pastable example if possible

```python
import pandas as pd
vals1 = pd.Series([1,1,2])
vals2 = pd.Series(['a', 'b', 'a'])
vals3 = pd.Series(pd.Categorical(['X', 'X', 'X',], categories=['X', 'Y']))
df = pd.concat([vals1, vals2, vals3], axis=1, keys=['L0', 'L1', 'L2'])

df.groupby(['L0','L1','L2'], observed=False).count()
```
#### Problem description

Dataframe:
![image](https://user-images.githubusercontent.com/22293319/50641108-d5cf8400-0f5e-11e9-9639-7156dd795a96.png)

Groupby result:
`df.groupby(['L0','L1','L2'], observed=False).count()`
![image](https://user-images.githubusercontent.com/22293319/50640649-5f7e5200-0f5d-11e9-8354-8963d2fa7d97.png)

Only the L2 column is categorical, but the resulting index is the cartesian product of all values of all levels. There were never any values for 2, b

The docs state (https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.groupby.html)

_This only applies if any of the groupers are Categoricals If True: only show observed values for categorical groupers. If False: show all values for categorical groupers._

From my reading, I would only expect categorical columns to have all their possible values in a index resulting from `.groupby(observed=False)`. But it seems setting `observed=False` seems to show combinations of all values for **all** index levels, rather than just for categorical groupers. 

#### Expected Output

Contrast this with `df.groupby(['L0', 'L1'], observed=False).count()`, and the expected index for the first two levels (without the categorical level). Note the lack of index level for [2, 'b'], as these levels are not categorical
![image](https://user-images.githubusercontent.com/22293319/50640747-a1a79380-0f5d-11e9-8da9-cc81b7132df3.png)

#### Output of ``pd.show_versions()``

<details>

INSTALLED VERSIONS
------------------
commit: None
python: 3.6.6.final.0
python-bits: 64
OS: Darwin
OS-release: 16.7.0
machine: x86_64
processor: i386
byteorder: little
LC_ALL: None
LANG: None
LOCALE: en_GB.UTF-8

pandas: 0.23.4
pytest: None
pip: 18.1
setuptools: 40.4.3
Cython: None
numpy: 1.15.4
scipy: 1.2.0
pyarrow: None
xarray: None
IPython: 7.2.0
sphinx: None
patsy: None
dateutil: 2.7.5
pytz: 2018.7
blosc: None
bottleneck: None
tables: None
numexpr: None
feather: None
matplotlib: 3.0.2
openpyxl: 2.5.12
xlrd: 1.2.0
xlwt: None
xlsxwriter: None
lxml: 4.2.5
bs4: 4.6.3
html5lib: None
sqlalchemy: 1.2.15
pymysql: 0.9.3
psycopg2: None
jinja2: 2.10
s3fs: None
fastparquet: None
pandas_gbq: None
pandas_datareader: None

</details>
