```bbox_inches="tight"``` support for *all* figure artists.

This is a first pass at making ```bbox_inches="tight"``` work for anything you can throw at a figure.

I think @leejjoon implemented this functionality originally, so it would be great to get some feedback from him as to whether this is a good approach or not.

My motivation for this has been seeing all of the PRs/issues that have gone by lately relating to ```bbox_inches="tight"```, most of these have come as a result of iPython defaulting to using this setting (@fperez may be interested in this PR therefore), hopefully this should resolve *all* outstanding issues on that front (a lot of them have actually already been fixed with bespoke solutions, but inevitably there will be other cases which have not been specifically targeted, hence this PR).

Personally, I still feel that ```bbox_inches="tight"``` is an ingenious hack which I would sooner see done better by a geometry manager (#1109), but in lieu of that functionality, getting this right is a worthy pragmatic short-to-medium term goal.

Thanks for your time,