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).
`modname` can be `None` for `ExternalFunctionDescriptor`, which simply export the `qualname`.  Perhaps, we should let `mangled_name` logic be override-able by subclass.