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.
- ...
@theengineear @chriddyp A great example of what `tls.get_subplots()` can now do.