Add Float.round function

Float.round allows rounding floats to arbitrary precision, as well
as specifying how midpoint rounding is performed (up/down).

This should provide accurate rounding for up to 15 digits of
precision (the max guaranteed by the IEEE-754 standard for
64-bit floating point numbers). If you can think of anything my
tests won't catch, let me know.