WIP: Adds Derivative.as_finite_diff()

Hello,

so this is PR giving Derivative a new method: as_finite_diff which is basically adding the capability
to do what was requested in this stack overflow question:

http://stackoverflow.com/questions/18701290/derivatives-discretization-with-sympy

In order to achieve this, I have implemented the algorithm from

Generation of Finite Difference Formulas on Arbitrarily Spaced Grids, Bengt Fornberg
Mathematics of compuation, 51, 184, 1988, 699-706 doi:10.1090/S0025-5718-1988-0935077-0

and put it in ```core.finite_diff``` in order to be able to use it ```from core.function```

The algorithm is quite useful in itself so it should not be burried in the method of Derivative but I am not sure if ```core.finite_diff``` is the best place for it.

Please let me know what you think of this functionality

## TODO

- [ ] Better doc strings