Merge remote-tracking branch 'Krastanov/vector_analysis_4' into 0.7.2

Conflicts:
	setup.py
Merge branch '0.7.2' of github.com:sympy/sympy into 0.7.2
3393: _random returns None when eval fails

equals tries randomly evaluating the expression. Without a good way
to know the domain in which to guess, sometimes it guesses in an
invalid domain for which evalf fails. In this case, when a negative
value for n is chosen, evalf fails. A hack is to watch for this
in _random and just bail when this happens.

http://code.google.com/p/sympy/issues/detail?id=3393
Merge pull request #1542 from smichr/3393

3393
Make sure all examples are in all.py and are executable
Merge branch '0.7.2' of github.com:sympy/sympy into 0.7.2
Skip rst statistics file in the doctests

The file raises a DeprecationWarning
Fix failing doctests in 0.7.2 branch.
Rename last instance of differential_geometry to diffgeom.
pyflakes cleanup of combinatorices
Fix the errors in the Fresnel example notebook
Updated Fresnel Integral examples notebook
Merge pull request #1548 from smichr/pyflakes

pyflakes cleanup of combinatorics
Merge pull request #1551 from raoulb/fix_fresnel_notebook

Fix the errors in the Fresnel example notebook
    process sets in canonical order

    Sometimes it is desirable to keep track of elements processed with a set and quit
    processing when all elements have been handled. An problem with iterabting over
    a set, however, is that there is not a guarantee that the items will be processed in
    the same order each time on all systems. So a ad-hoc idiom for an ordered set is used:

    s = sorted_items
    S = set(s)
    for si in s:
        ...
        S -= foo
        s = [i for i in s if i not in foo]

    - perm_groups
        use the above idiom and remove the rep=True option as this is unused in SymPy

    - prufer
        slight modification to handling of missing indices in error reporting sections

    - dpll2
        a set was being used but the only thing that is used is the length, so a list
        is used instead

    - factortools
        use the above idiom for processing the items of a set in canonical order
Merge pull request #1558 from smichr/oset

process sets in sorted order
Copy sympyprinting.py from IPython
Get printing extension working from within sympy

Since the extension has been moved from under IPython control to being
under SymPy control, the extension is renamed to ipythonprinting.py.

The imports have been changed to work from within SymPy, rather than
from within IPython. A notable change is that using this extension now
requires IPython to be importable from SymPy (where before SymPy needed
to be importable from IPython).
Track loading of sympyprinting with IPython extension manager

Updated sympyprinting IPython extension to use the IPython
ExtensionManager tracking of loaded extensions to ensure the extension
is not re-loaded, rather than using a global variable.

This is introduced in IPython pull #2462 [1]. Support for using a global
variable is maintained for older versions of IPython.

[1] https://github.com/ipython/ipython/pull/2462
Pretty print MutableMatrix in IPython

Allows sympyprinting to render the new matrix default matrix class,
MutableMatrix.

Fix found by @jenshnielsen [1].

[1] https://github.com/ipython/ipython/pull/2430