Expression Manipulator v0.3 (differentiation)

The only real difference is the fixing of a clear_extra() bug (and features), and the adding of a derive() function.

clear_extra() removes excess terms containing a zero factor, and factors containing excessive ones.

To take the derivative:

"derive(3x)"

For some reason, another extra term is attached to the result, and I can't simplify it, but it's still the correct one.

Right now powers are assumed to be constants. Later on when I add the ability to take logs, I'll work with variable powers. Also later on will be simple substitutions such as sin'(x) = cos(x)