misplaced scatter/hexbin subplot colorbars
- [x] closes #20455
- [x] tests added / passed
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry

NOTE: I have tested the following in Jupyter lab.

When I run:

```python
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
random_array = np.random.random((1000,3))
df = pd.DataFrame(random_array,columns=['A label','B label','C label'])

fig, axes = plt.subplots(1, 2)
df.plot.scatter('A label','B label', c='C label', ax=axes[0])
df.plot.scatter('A label','B label', c='C label', ax=axes[1])
plt.tight_layout()
```
I get:

![image](https://user-images.githubusercontent.com/26352146/42286164-eaa6ad96-7f7f-11e8-9bb5-cbe03d9820b7.png)

This PR fixes the issue with colorbars. After the PR the output is:

![image](https://user-images.githubusercontent.com/26352146/42286213-213375ba-7f80-11e8-964c-a0d4bdd79526.png)

This also fixes similar issue with hexbin plot. To explore different configurations try the following function:

```python
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

def make_multiplots(numrows=2,numcols=2,sharey=True,sharex=True, is_scatter = True):
    fig, axes = plt.subplots(numrows, numcols, sharey=sharey, sharex=sharex )
    for i in range(axes.shape[0]):
        for j in range(axes.shape[1]):
            random_array = np.random.random((1000,3))
            df = pd.DataFrame(random_array,columns=['A label','B label','C label'])
            if is_scatter:
                df.plot.scatter('A label', 'B label', c='C label', ax=axes[i,j]);
            else:
                df.plot.hexbin('A label', 'B label', gridsize=20, ax=axes[i,j]);

make_multiplots(numrows=2,numcols=3,sharey=False, sharex=False, is_scatter=False)
plt.tight_layout()
```
![image](https://user-images.githubusercontent.com/26352146/42286309-6bbba0c6-7f80-11e8-9327-b17cf31ecb07.png)

