Prevent computations in float16 in scalar and elemwise

Also add a bunch of tests
The comment above says we cannot import it from tensor.basic yet. Do you think it is mistaken?