Reimplement strtod to fix the double precision bug

The original implementation of strtod cannot guarantee double precision, which is discussed at [here](https://groups.google.com/forum/?fromgroups=#!topic/emscripten-discuss/mCHHwdmYZ2s).

This pull request re-implemented strtod using the same algorithm in Ruby 1.8 branch, which can address this problem correctly.

The test cases are modified to include this behavior. I already got my name and email in AUTHORS file.