Added basic support for symbolic differentation

Still a work in progress, but deriv(:(sin(x) + cos(x)), :x) already works
Added more tests for integrate()