Added few scalar functions

I have renamed sign to signum because in scala.math this function has signum name
Can you provide an example for when this becomes a problem, so I understand? I think the heap backend should implement them using the scala.math functions.