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.
Make String.to_float always return a float

Added code to make String.to_float("34") return {34.0, ""}
Add tests for String.to_integer and String.to_float
Optimize HashDict.pop
Ignore files in umbrella apps directory

Closes #1071
Merge pull request #1072 from ericmj/mix-umbrella-dirfile

Ignore files in umbrella apps directory
Merge pull request #1044 from jdeisenberg/string_to_int_float

String.to_integer and String.to_float