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
EXP : turn of clipping in spine example

Turn off clipping in the spine placement demos.

Closes #2795
BLD : adjust min six version to 1.3
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
explicitly test _drawRect against None
ENH : add flag to box_plot and bxp to manage (or not) xticks

Closes #2921
 - added test for managa_xtick option to boxplot
 - added CHANGELOG and whats_new.rst entry for manage_xticks
TST : fixed duplicate test name
Added a checkbox for (re-)generating auto-legend

Checkbox added that controls if an automatic legend is re-generated, or generated for the first time.
This checkbox defaults to False, as it generates a simple legend when set to True, see matplotlib.pyplot.legend(), which clobbers any carefully handcrafted legend.
re-generate legend: re-use: ncol and draggable

Copy some properties from the old legend to the new (re-)generated legend.
If the old legend was draggable, the new one is now also.
The number of columns in the legend is passed on from to old legend to the new legend.
re-generate legend: fixes

Fixed crash if there was no previous legend.
Fixed ncol inheritance.
pep8 compliance

Ran pep8.py 1.5.6 (https://github.com/jcrocholl/pep8) over the code.
Fixed all complaints.
figureoptions.py is now pep8 compliant

*/matplotlib/backends/qt4_editor/figureoptions.py
now passes pep8 checks.
DOC : edits to optional dependencies

 - cleaned up failed merge
 - added external movie programs to docs (closes #2490)
 - added all the external libraries that are include in the source
   tree
 - added six as explicit dependency.  This was discussed before and
   rejected, but I added it here because we now have a minimum version
   check which should be documented.
Merge pull request #2950 from tacaswell/install_dep_doc

DOC : edits to optional dependencies