add InlineBackend.print_figure_kwargs

removes special handling of 'quality', in favor of passing arbitrary kwargs to fig.canvas.print_figure.

This lets people override the occasionally problematic use of `bbox_inches='tight'`,
and any potential future issue that might be solved by adding/changing kwargs to print_figure.
test select_figure_formats
remove InlineBackend.quality from whatsnew
add print_figure_kwargs to whatsnew
read InlineBackend defaults in set_matplotlib_formats
specify default bbox_inches in print_figure explicitly

to preserve legacy behavior for any direct callers
test display.set_matplotlib_formats

give set_matplotlib_close default close=True
remove redundant check for self.shell is None