Refactor of complex's type class handling

This moves all the type classes to the methods themselves. Unfortunately, we had to do some rather underhanded things to successfully implement ScalaNumericConversions. If there are better ideas, let me know!