Make it possible to add mpl.rcParams to itself or deepcopy

Before it was not possible to set all rcParams to mpl.rcParams or use
 copy.deepcopy on mpl.rcParams.

There were two problems:
 1. validate_bool_maybe_none(None) was raising ValueError
 -> fixed by accepting this value
 2. svg.embed_char_paths was deprecated by svg.fonttype but both have
 different valid values (bool vs strings).
 -> fixed by adding a "value translation" lambda to deprecatedmap
 which translates the boolean values to the string values of
 svg.fonttype.

Also changed all validators, which accept None to check strings
without case ("none" vs "None").

Test for this: mpl.tests.test_rcparams.test_Bug_2543()

Closes: #2543
fixes issue #2556

Fixes it in two ways:

1) changes the closure of `on_dpi` to be over a weakref, not `self`
2) cleans up the call back when the quiver is removed
pep8 fix
renamed import

renamed imported matplotlib.collections from
`collections` -> `mcollections` to try and avoid clashing with
`collections` in python core.
added test_quiver module

tests memory leaks reported in issue #2556
fixed memory leak in quiverkey

closes #2556
handle NaN case nicely in _is_sorted

Previously, the `>=` comparison would cause a
"RuntimeWarning: invalid value encountered in greater_equal".

Here, `np.amin` propagates NaN values appropriately
and doesn't cause the warning to throw.
ENH : added warning on annotate

When calling with certain kwarg combinations (no`xytext`, but
with `textcoords`) unexpected, but correct behavior can result.

See #1311 ht to @cimarronm for sorting out what was wrong.
pep8 + minor variable re-naming
removed un-needed weakref
Do clip optimization only when clipping is turned on
adding test case for #2744
added missing self
Removes artificial limit in artist picker traversal. There are quite a
few object (fig, VPacker, etc.) which do not contain an axes property
and would not be traversed for picking logic without this change.
Reverted the children picker traversal back and added extra check so
that children are picked if the current object does not have an axes
property.
fixed references to demos in boxplot and bxp docstrings
Remove clear_temp from ani.save call
Merge pull request #2558 from tacaswell/quiver_memory_leak

fixes issue #2556
Merge remote-tracking branch 'upstream/v1.3.x'

Conflicts:
	lib/matplotlib/quiver.py
Merge pull request #2555 from JanSchulz/bug_2543

Make it possible to add mpl.rcParams to itself or deepcopy