New types

feel free to start taking a look/give feedback--left to do on this:
*  restrict operations on booleans (ie. bool + bool makes no sense)
* include strings, and restrict string operations (will need to define string + string operations, i think we exclude everything else
* right now the only way to create complex numbers is hard code them, ideally we can make complex numbers with any (expr, expr)

don't merge yet--i needa clean up some stuff and i would like to finish some of the above ^