make binop constant folding work on floats as well, plus tests
make unop constant folding work on floats as well, plus tests