Revamp tls.get_subplots

@theengineear @chriddyp 

`tls.get_subplots` is in need of some revamping.

More info in this Asana [task](https://app.asana.com/0/11724913287040/12301257260418).

Features wishlist:

- Generate more complicated subplot arrangements e.g https://plot.ly/~etpinard/245
- Assign shared axes
- Set irregular horizontal and vertical spacing in-between subplots
- Generate subscenes - subaxes subplot grid.
- ...
@etpinard , i think i've mentioned this before. but i really like how gridspec from matplotlib handles this stuff: http://matplotlib.org/users/gridspec.html

With this approach, you just let the user define a rectangular grid, and then assign graphs to locations on that grid.