Prevent computations in float16 in scalar and elemwise

Also add a bunch of tests
I just tried that, but the result was `ImportError: cannot import name discrete_dtypes`