Refactor the ato* and strto* family.

There are no meaningful changes here, just a minimal conversion to two
C++ templates to make further changes easier.

Bug: N/A
Test: ran tests, benchmarks
Change-Id: I958fbf17a85f19dd8f17bfb4bbb9314d220daa3b
diff --git a/libc/Android.bp b/libc/Android.bp
index 1017fa5..0e3289d 100644
--- a/libc/Android.bp
+++ b/libc/Android.bp
@@ -468,9 +468,6 @@
         "upstream-openbsd/lib/libc/stdio/wbuf.c",
         "upstream-openbsd/lib/libc/stdio/wsetup.c",
         "upstream-openbsd/lib/libc/stdlib/abs.c",
-        "upstream-openbsd/lib/libc/stdlib/atoi.c",
-        "upstream-openbsd/lib/libc/stdlib/atol.c",
-        "upstream-openbsd/lib/libc/stdlib/atoll.c",
         "upstream-openbsd/lib/libc/stdlib/getenv.c",
         "upstream-openbsd/lib/libc/stdlib/getsubopt.c",
         "upstream-openbsd/lib/libc/stdlib/insque.c",
@@ -482,12 +479,6 @@
         "upstream-openbsd/lib/libc/stdlib/reallocarray.c",
         "upstream-openbsd/lib/libc/stdlib/remque.c",
         "upstream-openbsd/lib/libc/stdlib/setenv.c",
-        "upstream-openbsd/lib/libc/stdlib/strtoimax.c",
-        "upstream-openbsd/lib/libc/stdlib/strtol.c",
-        "upstream-openbsd/lib/libc/stdlib/strtoll.c",
-        "upstream-openbsd/lib/libc/stdlib/strtoul.c",
-        "upstream-openbsd/lib/libc/stdlib/strtoull.c",
-        "upstream-openbsd/lib/libc/stdlib/strtoumax.c",
         "upstream-openbsd/lib/libc/stdlib/system.c",
         "upstream-openbsd/lib/libc/stdlib/tfind.c",
         "upstream-openbsd/lib/libc/stdlib/tsearch.c",
@@ -1375,6 +1366,7 @@
         "bionic/string_l.cpp",
         "bionic/strings_l.cpp",
         "bionic/strsignal.cpp",
+        "bionic/strtol.cpp",
         "bionic/strtold.cpp",
         "bionic/swab.cpp",
         "bionic/symlink.cpp",