ENH: groupby.hist bins don't match
#### Code Sample, a copy-pastable example if possible

```python
import numpy as np
import pandas as pd
N = 100
df = pd.DataFrame(np.append(np.random.randn(N), np.random.randn(N)/10), columns = ['rand'])
df['group'] = [0]*N + [1]*N
df.groupby('group')['rand'].hist(bins=20, alpha=0.7)
```
#### Problem description

When the dynamic range of two groups are not the same, histogram bins each group according to its own range. Ideally these should match, taking the union of dynamic ranges and binning it for all. 

The output of above code is:
![image](https://user-images.githubusercontent.com/26352146/43731590-f6cbc112-997c-11e8-8812-b9e062792590.png)


#### Expected Output
Histograms with bins of equal widths (or maybe an input flag to `hist` that could do this)

maybe somethings like the output of following code:

```python
bins = np.linspace(-3, 2.5, 20)
df[df['group']==0]['rand'].hist(bins=bins, alpha=0.7)
df[df['group']==1]['rand'].hist(bins=bins, alpha=0.7)
```
![image](https://user-images.githubusercontent.com/26352146/43731875-ede60084-997d-11e8-9286-99e2681a31bc.png)


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

<details>

INSTALLED VERSIONS
------------------
commit: None
python: 3.6.5.final.0
python-bits: 64
OS: Linux
OS-release: 4.15.0-29-generic
machine: x86_64
processor: x86_64
byteorder: little
LC_ALL: None
LANG: en_US.UTF-8
LOCALE: en_US.UTF-8

pandas: 0.23.3
pytest: 3.5.0
pip: 18.0
setuptools: 39.1.0
Cython: 0.28.1
numpy: 1.14.5
scipy: 1.0.1
pyarrow: None
xarray: None
IPython: 6.3.0
sphinx: 1.7.2
patsy: None
dateutil: 2.7.3
pytz: 2018.5
blosc: None
bottleneck: None
tables: None
numexpr: None
feather: None
matplotlib: 2.2.2
openpyxl: None
xlrd: 1.1.0
xlwt: 1.3.0
xlsxwriter: None
lxml: None
bs4: None
html5lib: 0.9999999
sqlalchemy: None
pymysql: None
psycopg2: None
jinja2: 2.10
s3fs: None
fastparquet: None
pandas_gbq: 0.2.0
pandas_datareader: None

</details>
