BUGFIX:  This change fixes #2475, where contour labels added manually
produce ugly spikes in the contours.  The problem was that screen
coordinates were being passed as data coordinates when the contour was
split to add room for the label.

Incorporate my fix and miili's #2806 change
TST : added test to exercise transform kwarg to `add_label_near`

This exercises with input in both display and data units.
doc changed
implement quiver 3d

this fixes issue #1026
pep8 spacing
Revert "pep8 spacing"

This reverts commit 2db111899d2b679aa5f534ed1418d273f3dc19e7.
pep8 spacing and imports
adjustments according to code-review
docs
Handles some corner cases in vector math
bug fix and whats_new
Merge remote-tracking branch 'origin/fix-1026' into fix-1026
doc string mod
Use less aggressive garbage collection. Fixes GH-3044.
BUG : fix for text path rendering issues

Suggested by @leejjoon.

Fixes #2889
symlog-scale: Remove asssert linscale >= 1.

I can't see why the assert was needed and it does excatly what i would expect from it.
Fix for bug #3029.

The FreeType class does not override the ``get_extension`` method, by default this method will return None.

https://github.com/matplotlib/matplotlib/blob/6cf6063c7a3037d52545b2b7268623d33da0ecdd/setupext.py#L387

When calling the ``_check_for_pkg_config`` method a new extension will be created that what won't contain the original flags added by the ``add_flags`` method.

https://github.com/matplotlib/matplotlib/blob/6cf6063c7a3037d52545b2b7268623d33da0ecdd/setupext.py#L438
Implement backend for PyQt5 + modify Qt4 backend to Qt5 structure.

A backend for PyQt5 based on intial work by @badders, modified to fix Qt5 mouse event handling,
then re-structured to implement as a wrapper over the existing Qt4 code. Following discussions on
this pull request:

https://github.com/matplotlib/matplotlib/pull/2471

The code has been restructured to implement PyQt5 backend as a first-class implementation, with
other Qt backends (PyQt4, PyQt4v2, PySide (Qt v4)) wrapping it and modifying as required. The issues
of objects being moved around in the Qt namespace (many QtGui objects now in QtWidgets) QtWidgets is
simply assigned as a copy of QtGui if not available. This achieves the intended outcome with the
minimum code.

PySide required re-ordering of import on FigureCanvasQTAgg or paintEvent
function would not being called on FigureCanvasQTAggBase resulting in
black window.

A number of indentation, import and other fixes.
Small changes to clean up webagg javascript code a bit.
Added the nbAgg backend to allow interactive figures in the IPython
notebook.