Add erlang:float_to_list/2

Text representation of a float formatted using given options.

This BIF solves a problem of float_to_list/1 that doesn't allow
specifying the number of digits after the decimal point when
formatting floats.

    float_to_list(Float, Options) -> string()

    Float = float()
    Options = [Option]
    Option = {decimals, Decimals::0..249} |
             {scientific, Decimals::0..249} |
             compact

Returns a string which corresponds to the text representation of
a `Float` formatted using given options.

When decimals option is specified the returned value will contain
at most `Decimals` number of digits past the decimal point.
When `compact` option is provided the trailing zeros at the end
of the list are truncated (this option is only meaningful together
with the `decimals` option). When `scientific` option is provided,
the float will be formatted using scientific notation with
`Decimals` digits of precision. If `Options` is `[]` the function
behaves like `float_to_list/1`. When using `decimals` option and
the number doesn't fit in the static internal buffer of 256 bytes
the function throws `internal_error`.