Restart Wang's algorithm with appropriate polynomial (#3256)
Staging of the new differential_geometry module.

This module is based on "Functional Differential Geometry" by Sussman and
Wisdom.

Import:
-------
It is not automatically imported by `from sympy import *`. To import it use
`import sympy.differential_geometry`.

Structure:
----------

The first patch brings the basic `Manifold` and `Patch` classes which are not
much more than containers for objects defined on the Manifold.

Each `Patch` can define a number of `CoordSystem` objects which contain all the
logic necessary for coordinate transformations.

`Point` instances can be defined using coordinates in a `CoordSystem`.

`ScalarField` objects can be defined. They take a point and return a scalar.

`VectorField` represents an operator on `ScalarField` (a directional
derivative).

Rudimentary docstrings are provided.

Predefined Manifolds:
---------------------

The R2 manifold is predefined in order to facilitate work on this manifold.
To import it use `from sympy.differential_geometry.Rn import R2, R2_r, R2_p`.
R2 is the manifold and R2_r and R2_p are the rectangular and polar
`CoordSystem` instances.

Other predefined manifolds will be supplied also.

Tests:
------

Test with complete coverage are provided. The examples from "Functional
Differential Geometry" are also provided as tests.

The only part that is not tested is unfinished functionality related to the
connections between coordinate systems.

The test_args.py test that check whether the args are instances of Basic are
XFAILed at the moment.
Mark coordinate-dependent attributes in differential_geometry as private.

An underscore was appended to all attributes that are coordinate-dependent.
Bring the SparseMatrix constructor in compliance with the Matrix class

The SparceMatrix constructor was duplicating code and some of the semantics
were different from those imposed by MatrixBase. Now the
_handle_creation_inputs is used for all inputs for wich we do not have special
sparce logic.
[polys] Create sphinx docs for internal usage of module.
[docs/polys] Clean up polys docstrings.

Note that these changes are based on visual inspection of the compiled docs,
and not on a detailed study of the source code. The aim of this commit is
cosmetical.
No docstrings were changed that are not included in the sphinx doc.
Comment out a number of unreliable tests in the plotting module.

These tests were dedicated to testing what types of warnings are raised. The
tests will still be ran, however the types of warnings are not checked anymore.
A minor fix to the tests of jscode.

`raises(Error, string)` -> `raises(Error, lambda)`
Merge pull request #1347 from Krastanov/jscode_test_fix

A minor fix to the tests of jscode.
Merge pull request #1345 from Krastanov/plot_remove_unreliable_test

Comment out a number of unreliable tests in the plotting module.
Merge pull request #1341 from ness01/polydocs

Polydocs
Add a test for issue 3256

This involved modifying the dmp_zz_wang() function to accept a random sequence
to be used internally, so that the test failure, which previously failed with
random seed 13604685, could be exactly reproduced, regardless of any potential
changes to the random number generating algorithm.
Fix for issue 3031

Uses mainloop only when not in ipython.
Merge pull request #1353 from asmeurer/mattpap_3256

Fix and test issue 3256
edit: sting -> string
Merge pull request #1352 from catchmrbharath/3031

Fix for issue 3031
The MathJax extension is now built-in to Sphinx
Use https MathJax CDN

See http://www.mathjax.org/docs/2.0/start.html#secure-access-to-the-cdn.
Merge pull request #1290 from Krastanov/matrix_iter

Bring the SparseMatrix constructor in compliance with the Matrix class
Merge pull request #1305 from Krastanov/vector_analysis_1

Vector analysis 1