cmath module support

Fix #497. This adds support for all cmath methods.
Note: it also implements math.isfinite and math.copysign, and fixes a couple issues with signed zeros and infinites (which are almost untested in test_operators and test_mathlib, AFAIR).
The easiest fix here is:
```python
        if self.modname is not None:
            self.mangled_name = mangler('%s.%s' % (self.modname, self.qualname),
                                        self.argtypes)
        else:
            self.mangled_name = mangler('%s' % (self.qualname,), self.argtypes)
```
and would fix the cuda backend.