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.
fixup
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
generate supported formats in ValueError
remove websocket url

websockets should follow the kernel URL

(normal behavior is unchanged, only unused configurability is removed)
add incompat note about removed URL config
Merge pull request #5110 from minrk/bbox_inches

add InlineBackend.print_figure_kwargs
Merge pull request #5179 from minrk/rm-ws-url

remove websocket url
Change load_handlers to support relative and absolute module names
ENH: Enable custom handlers via ipython config