repr string for pd.Grouper
- [ ] closes #xxxx
- [x ] tests added / passed
- [ x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [ ] whatsnew entry

**Edit: I've made a full proposal (sans some  discussion points below)**

Currently the repr for ``Grouper`` and ``TimeGrouper`` is not pretty:

```python
>>> pd.Grouper(key='key')
<pandas.core.groupby.Grouper at 0x248d5ebfd30>
>>> pd.Grouper(key='key', freq='50Min')
<pandas.core.resample.TimeGrouper at 0x248d68d95c0>
```

I propose adding a ``Grouper.__repr__``, so the repr will be like:

```python
>>> pd.Grouper(key='key')
Grouper(key='key')
>>> pd.Grouper(key='key', freq='50Min')
TimeGrouper(key='key', freq='50T')
>>> pd.Grouper(key='key', freq='50Min', label='right')
TimeGrouper(label='right', key='k', freq='50T')
```

The repr shows the instantiation form, so users could copy the repr and paste it in to use it, which is always nice.

See attached PR. Tests are still missing. Comments welcome.

Two points:
* The repr calculation is a bit heavy, so I've cached it. Don't know if that is going overboard?
* Is ``TimeGrouper`` deprecated?