Prevent computations in float16 in scalar and elemwise

Also add a bunch of tests