Check parameter and return types of intrinsics

Without this calls to the cos(ireal) function in std.math are
silently redirected to cos(real) builtin.
Disable unsupported unittests
Fix math related unittests

* Lower required precision
* Avoid constant folding
* Force real precision sqrt
* make exp call exp2 to match dmd's output
Implement missing inline asm for std.math