Fixes #2676 : Convert Matrix to NumPy Array with NumPy dtype

Exposes dtype to the user. Default dtype is 'object'.
Rename d_type to dtype
Added tests for matrix2numpy
Adds Derivative.as_finite_diff() and core.finite_diff with finite_diff_weights and apply_finite_difference
Change default step of as_finite_diff from sympify('h') to 1
Fixes Py3 error for test range+range
Moved finite_diff from core to series. Extended doc of finite_diff.
Updated Derivative.as_finite_diff() doc, tests and default step-size.
Merge remote-tracking branch 'upstream/master' into finite_difference
Fixed/updated docstrings with new master
Fixed docstring.
Test some basic properties of iterable()
Updated finite_diff according to feedback.

* finite_diff is moved from sympy.series to sympy.calculus
* Derivative.as_finite_diff got a new kwarg: ``wrt`` for use on partial
    derivatives, the arguments indep_vals and around were also renamed
    to points and x0 respectively.
* Derivative.as_finite_diff was refactored and made PEP8 compliant
* finite_diff.py and test_finite_diff.py were made PEP8 compliant
* Typos were fixed througout the docstrings
* A small part on finite differences were added to the tutorial on calculus.
Fixes to finite_diff in response to PR feedback.
Better tutorial text. [skip ci]
Updated aboutus.rst with finite diff work. [skip ci]
Moved as_finite_diff to calculus.finite_diff (no hook in core).
Fix docstrings. PEP8 compliance.

Making doctests for long output pass is tricky, see e.g.:
http://stackoverflow.com/questions/13395610/
Add tests for issue 5113
Complete PR 2376
add simple case for Integral.is_zero