Inconsistent keys of GroupBy groups and indices
```python
>>> df = pd.DataFrame({'a': [1, 1, 2], 'b': [10, 10, 20], 'c': [100, 200, 300]})
>>> df.groupby(['a']).groups
{1: Int64Index([0, 1], dtype='int64'), 2: Int64Index([2], dtype='int64')}
>>> df.groupby(['a', 'b' ]).groups
{(1, 10): Int64Index([0, 1], dtype='int64'),
 (2, 20): Int64Index([2], dtype='int64')}
```

#### Problem description

I believe switching the keys from scalar values to lists just because the argument to `groupby` changes from `['a']` to `['a', 'b']` is inconsisent, and causes unexpected bugs. In general, I think developers would find  it unexpected and confusing that returned value types vary based on the length of list in the input.

Precisely the same situation occurs with `for name, data in df.groupby(['a'])`: the `name` values are scalars, and I expected them to be lists.

Regardless of whether this behavior is changed or left alone, I think it's best to document it, so if someone wants to create a workaround, they can rely on this behavior being consistent.

I do not have a preference or opinion about how `df.groupby('a')` (with a string instead of a list) should behave. I'd be fine with keys being scalar or lists, depending on what's more convenient / more expected. Either is ok because the type of the input  is no longer a list, so the return type does not have to match what is returned in the case of `df.groupby(['a'])`.

#### Expected Output

```python
>>> df = pd.DataFrame({'a': [1, 1, 2], 'b': [10, 10, 20], 'c': [100, 200, 300]})
>>> df.groupby(['a']).groups
{(1,): Int64Index([0, 1], dtype='int64'), (2,): Int64Index([2], dtype='int64')}
>>> df.groupby(['a', 'b' ]).groups
{(1, 10): Int64Index([0, 1], dtype='int64'),
 (2, 20): Int64Index([2], dtype='int64')}
```

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

<details>

INSTALLED VERSIONS
------------------
commit: None
python: 2.7.15.final.0
python-bits: 64
OS: Linux
OS-release: 4.18.10-1rodete2-amd64
machine: x86_64
processor:
byteorder: little
LC_ALL: None
LANG: en_US.UTF-8
LOCALE: None.None

pandas: 0.22.0
pytest: None
pip: None
setuptools: None
Cython: None
numpy: 1.13.3
scipy: 1.0.0
pyarrow: None
xarray: None
IPython: 2.0.0
sphinx: None
patsy: 0.4.1
dateutil: 2.6.0
pytz: 2018.7
blosc: None
bottleneck: None
tables: 3.4.4
numexpr: 2.5
feather: None
matplotlib: 1.5.2
openpyxl: None
xlrd: 0.9.3
xlwt: None
xlsxwriter: None
lxml: None
bs4: None
html5lib: None
sqlalchemy: 1.2.9
pymysql: None
psycopg2: None
jinja2: 2.10
s3fs: None
fastparquet: None
pandas_gbq: None
pandas_datareader: None

</details>
