Add precision to Float.ceil/1 & Float.floor/1

Float.ceil/1 and Float.floor/1 no longer accepts integers. They now accept a precision argument that defaults to 0 (as in round/2) and always return floats. The documentation of Float.round/2 was updated to cover the use of Kernel.round/1 which accepts both integers and floats, always returns integers and is allowed in guards.