differentiate is a general differentation operation
It must fulfill the Leibnitz condition
differentiate (x * y) == differentiate x * y + x * differentiate y
Unfortunately, this scheme cannot be easily extended to more than two variables,
e.g. MathObj.PowerSeries2.
