initial implementation of sympy.physics.quantum.pauli, containing the pauli sigma operators and states that they act on
made pauli operators commute with boson operators
fix bug in use of warnings module. improved support for normal ordering expression of products of mix of differetnt types of operators
improved support for simplification of products that includes an identity operator
Fixed bug in handling of non-operator base Pow instances in sympy.physics.quantum.operatorordering
support for indices for Pauli operators the in quantum.pauli module
Added args test. Fixed code style error. Fixed missing import bug in unit test.
added a few more tests for pauli module. fixed bug in unit test.
fix white spaces
added newline at end of file
removed trailing white space
added docstrings and docstring tests/examples
Merge branch 'physics.quantum.pauli' of github.com:jrjohansson/sympy into physics.quantum.pauli
added more unit tests for pauli sigma operators
added more unit tests for quantum pauli operators
Removed the slow tests which are never actually run to completion on
travis due to timeout errors.  Those tests and there run times are:

6745.05s call     sympy/physics/mechanics/tests/test_kane3.py::test_bicycle
2083.29s call     sympy/solvers/tests/test_ode.py::test_1st_exact2
1522.66s call     sympy/integrals/tests/test_failing_integrals.py::test_issue_4540
1221.33s call     sympy/core/tests/test_wester.py::test_W25
1090.84s call     sympy/integrals/tests/test_failing_integrals.py::test_issue_4941
963.31s call     sympy/solvers/tests/test_solvers.py::test_issue_6528
437.72s call     sympy/integrals/tests/test_heurisch.py::test_pmint_WrightOmega
411.27s call     sympy/core/tests/test_wester.py::test_W24
MatExpr: Fix entry when power is zero and other cases

 *  `MatPow(A, 0)[0, 0]` would give an error because an empty list was
    passed to MatMult.  Fixed, added tests.
 *  Entries of `MatPow` of ImmutableMatrix added as a special case.
    This fixes `.as_explicit` for MatPow of ImmutableMatrices, added
    tests for this.
 *  Previously, `MatPow._entry` would return None if couldn't do it,
    instead raise errors.
 *  Negative powers probably do-able in some cases, left comments
    for future improvement.
Codegen: Use the first function name as a default for prefix

Allow an abbreviated call to codegen:
codegen(("foo", 2*x*y), "F95")
rather than specifying "foo" twice:
codegen(("foo", 2*x*y), "F95", "foo")

This is particularly nice for languages such as Octave where the
filename (prefix) should match the function name.
Implementing the Rademacher distribution
add is_hermitian to Matrix and SparseMatrix