backend_ps: Do not write to a temporary file unless using an external distiller.

If ps.usedistiller is omitted, writes directly to the output file, instead of
creating a temporary file and subsequently copying it to the output.

This is more efficient, and also works on restricted platforms such as Google
App Engine, which are unable to provide a writable temporary file system.
Merge pull request #1826 from mgiuca-google/backend_ps-no-temp-file

backend_ps: Do not write to a temporary file unless using an external distiller
Added new module, matplotlib.subprocess_fixed, as a replacement for subprocess.

cbook: Moved check_output to subprocess_fixed.
backend_pgf: Import check_output from subprocess_fixed instead of cbook.
All modules now use matplotlib.subprocess_fixed instead of subprocess.
subprocess_fixed: Gracefully handle platforms without subprocess.Popen.

If subprocess.Popen is missing (for example, on Google App Engine), replaces it
with a dummy version that raises OSError. In these environments, calls to
subprocess will be handled properly as if the called app could not be found,
instead of raising AttributeError.
texmanager: Ignore dvipng if it cannot be found, instead of raising OSError.
cbook.report_memory: If ps not found, raises NotImplementedError, not OSError.
Moved matplotlib.subprocess_fixed to matplotlib.compat.subprocess.
api_changes: Document the API changes.

- The subtle change to cbook.report_memory's exception types.
- Moving subprocess_fixed to compat.subprocess.
compat.subprocess: Turn on absolute importing.

This prevents the module from importing itself (as opposed to the global
subprocess module) on Python 3 after 2to3 conversion.
Merge pull request #1825 from mgiuca-google/subprocess-google-app-engine

Work around missing subprocess members on Google App Engine