Changed argument names in check_type_errors

for instance exp_ruby_types instead of just expected_types
Added an alternative to check_type_errors

A different approach to the check_type_errors function is one that is less
generic and focuses on the needs of the Math modules. It's called converter for
now because it actually just converts the input variables to float (but in a
stricter way as Coerce does).
ldexp still depends on check_type_errors.
Removed check_type_error decorator on ldexp

Without this decorator the function becomes larger due to the fact that
checking for possible TypeErrors and the unwrapping is all happening in ldexp
now. However, if ldexp stays the only function where all of this has to be done
in the undecorated version I think it's still acceptable.