Polish abs(x).diff()

Currently we leave the derivative of abs(x) unevaluated (this might change in the future), but abs(x).diff(y) == 0. Tests were added. Also, Basic.diff() now returns an unevaluated Derivative, rather than a runtime exception.