Add String.to_integer/1 and String.to_float/1

Given a string that starts with a valid integer, String.to_integer/1
returns a tuple {result, remainder} where remainder is the character
string following the valid integer. If the input is not valid as
specified by Erlang's :string.to_integer/1, the function returns
:error.

Given a string that starts with a valid float, String.to_float/1
returns a tuple {result, remainder} where remainder is the character
string following the valid float. If the input is not valid as
specified by Erlang's :string.to_float/1, the function then calls
String.to_integer/1 and returns that value, which is either an
{integer result, remainder} or :error.

This latter behavior allows you to say String.to_float("34")
without generating an error.