Shared axes colorbars & finer location control

I have implemented a particularly useful feature to be able to add a colorbar, via plt.colorbar, which can represent more than one axes. The way the code is implemented means that it also allows users to have more than one colorbar per axes (as one of the tests show).

![shared axes colorbar](https://github.com/pelson/matplotlib/blob/d4888bbc82ede4b1510e38c7c9ba17f703a880d6/lib/matplotlib/tests/baseline_images/test_colorbar/double_cbar.png?raw=true)

Additionally, I have added a ```location``` argument to the ```figure.colorbar``` function, the valid options are 'left', 'right', 'top', 'bottom', with (hopefully) obvious meaning. I have found it hard to write documentation on this particular feature because there is a duplication in the way that colorbar axes are created (use_gridspec), for which I have not implemented the same features.

![shared axes colorbar](https://github.com/pelson/matplotlib/blob/d4888bbc82ede4b1510e38c7c9ba17f703a880d6/lib/matplotlib/tests/baseline_images/test_colorbar/cbar_locationing.png?raw=true)

I have added a test_colorbar in the knowledge that #766 will also be adding a similar test file (although the content is completely separate).