Using a class varilable instead of temp files for keeping track of docs.

:meth:`IpythonDirective.setup` method was using a temporary file, such
as :file:`/tmp/seen_docRANDOM`, for storing visited source document
filenames. For a document that is not visited (name not in the temporary
file), it restarts counting line numbers.  Temporary file names are
selected randomly and they were not deleted from the disk upon
completion of a build. Since :meth:`.setup` picks a temp file
arbitrarily to visited status of a file is determined incorrectly.
Using a class variable resolves this problem.

Changed the directive setup function to use a class files for keeping
track of documents.
Fixed a problem with evaluating indented lines in pure python code.

:meth:`EmbeddedSphinxShell.process_pure_python` could not process
block of code with indentation correctly. For example, the following

.. ipython:: python

   for i in range(10):
       if i < 5:
           continue
       else:
           pass

would result in two IPython lines:

In [19]: for i in range(10):
   ....:      if i < 5:
   ....:          continue
   ....:

In [20]: else:
   ....:          pass
   ....:

This would raise various types of error, indentation/snytax, etc.

To resolve this problem, added a simple check for indentation
in the next line which normally start a new IPython line.
Merge branch 'master' of https://github.com/abakan/ipython
Reverted an unintended change in matplotlib backend.
Merge pull request #3298 from abakan/master

Some fixes in IPython Sphinx directive

Made two fixes in plot_directive module:

 - a problem with interpreting pure python code with multiple levels of indentation
 - a problem with keeping track of visited files when restarting ipython line numbers