make all optional backends respect the cfg file
cleaning up OptionalBackendPackage a tiny bit

 - check for `if config is not None` before the try/except/pass adds
   nothing, just makes it less readable
 - much clearer to handle of the default value of the `install` variable
   with the base class and not nested in a try/except of the
   `get_config` method (and even duplicated outside of the try/except)
 - the `force` attribute (only used for BackendAgg right now it seems)
   should also have a more prominent default state in the base class
   rather than in just one subclass
move general check() method of optional backend to base class

also split up the if/else in 3 branches to show a separate message if an
configuration file backend opt-out was overridden by a forced backend
install
replace checking of configuration of optional backends in overridden check() methods by a super() call
refactoring/separating backend checks for config file/dependencies

 - config check is handled handled in optional backend base class and
   calls separate dependency check
 - dependency check is an empty stub in base class and can be overriden
   in subclasses
update list of gui backends in config template
refactoring and unifying OptionalPackage and OptionalBackendPackage
Fixes #2229: Hatching on line collections in PDF backend works
Fix unit tests.
Corrected use of cbook.warn_deprecated()
Correct use of obj_type argument in cbook.warn_deprecated
don't install python-dateutil==2.1 on python 3.3
check if pyparsing <<= is broken instead of checking the version

distributions with packaged pyparsing might have already patched
pyparsing but not bumped the version number.
closes #2376
Merge pull request #2380 from juliantaylor/pyparsing-check

check if pyparsing <<= is broken instead of checking the version
Merge pull request #2381 from mrterry/dateutil_py33

don't install python-dateutil==2.1 on python 3.3
Merge pull request #2371 from ianthomas23/warn_deprecated_correction

Corrections to cbook.warn_deprecated calls().
replaced `col2hex` which seems to have gotten lost in a bad merge
pep8 fixes
pep8 fixes
converted import-critical PyQt calls to new style so that it will
not seg-fault when using PySide

Addresses issue #2378