Revised math functions, defaults (+,-,etc..) act on list of arguments
and now new functions (num-add,num-sub,etc) act on 2 numbers. I also
added comparisons functions to the arithmatic drivers

The compiarison funcitons are currently named driv-<op> (i.e. driv->,
driv->=, driv-=,etc) they work, but don't work when used in higher order
funcitons, so I'm in the process of writing new compaison functions
which will act as normal binary comparisons if given two numbers but act
as functions on lists if given a list.

I just realized this might be a bit tricky because if it's going to take
a list argument it'll have to have a required argument and a rest arg,
so I'll need to check if the list only has one element and if so then
call a binary funciton with the requried argument and the car, which
seems rather complicated.