BUG : instantiate fall-back writer

fixes #2651

If the a string is passed into save as `writer` the code tries to
look up a writer with that name and create it.  If a writer with that
name is not in the registry, it is replaced with the name of the first
writer that _is_ in the registry, but not an instance of that type.
Fixes a bug in font family lookup.  Any font in the font alias
list (e.g. font.sans-serif) would be considered a perfect match whenever
the selected font alias is the first in the font.family list.  This
broke the priority ordering of font names.
Add test
Use assert_equal
No need to cast to floats with future division
DOC/ENH : get/set_size_inches

Added links between `get_size_inches` and `set_size_inches`

Added an `np.array` call to `get_size_inches` to return a copy of
the size, instead of a reference to the internal np.array.

Closes #2303
EXP : turn of clipping in spine example

Turn off clipping in the spine placement demos.

Closes #2795
(fix #2097) PGF: get fonts from fc-list, use builtin fonts for tests
BUG : Qt repaint workaround on windows

Added platform specific replacement of `update` with `repaint` in
`FigureCanvasQtAgg.draw` for windows.
DOC : minor tweaks to set/get_size_inches

 - better numpydoc style
 - added inch <-> cm conversion factor
colors: Replace docstring ''' with """
test_colors: Fix typo
colors: Add power-law normalization
power_norm_demo: Initial commit
hist2d: Add a note mentioning PowerNorm
Merge pull request #2844 from tacaswell/qt_win_specialcase

BUG : Qt repaint workaround on windows
Don't close figure if context and apply_rcparams are both set. Fixes #2890.
remove .rect member (clashes with QWidget)

FigureCanvasQTAgg inherits from QWidget, which already has a 'rect'
property and getter.

Also, consolidate .rect and (boolean) .drawRect into a single _drawRect
member.  This is only used for the zoom rect and not accessed from other
classes (other than indirectly via the drawRectangle() function).
Re-Generate legend, through apply_callback/Apply

If there is a legend, it is re-generated when "Apply" is clicked.
See Issue #2934:
Might have side effects.
matplotlib#2934
tacaswell: "However this will clobber any legend that is not the auto-magically generated one so it should probably also get a tick box to enable/disable the updating of the legend."
Tick box not included.
update api_changes.rst w.r.t. Qt4 backend changes