used complex class instead of allocas in the complex divides.
doh, fixed problem in previous commit
hid ufunc_db dictionary behind a function.

This also made the code less weird.