hush: use ash's read builtin

function                                             old     new   delta
shell_builtin_read                                     -    1000   +1000
set_local_var_from_halves                              -      24     +24
setvar2                                                -       7      +7
...
popstring                                            140     134      -6
ash_main                                            1375    1368      -7
setvar                                               184     174     -10
arith_set_local_var                                   36       -     -36
builtin_read                                        1096     185    -911
------------------------------------------------------------------------------
(add/remove: 3/1 grow/shrink: 5/23 up/down: 1038/-1007)        Total: 31 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
diff --git a/shell/math.h b/shell/math.h
index 7b7898e..2b0b2b8 100644
--- a/shell/math.h
+++ b/shell/math.h
@@ -87,12 +87,13 @@
 #define strto_arith_t strtoul
 #endif
 
-typedef const char *(*arith_var_lookup_t)(const char *name);
-typedef void (*arith_var_set_t)(const char *name, const char *val, int flags);
-typedef char *(*arith_var_endofname_t)(const char *name);
+typedef const char* FAST_FUNC (*arith_var_lookup_t)(const char *name);
+typedef void        FAST_FUNC (*arith_var_set_t)(const char *name, const char *val);
+typedef char*       FAST_FUNC (*arith_var_endofname_t)(const char *name);
+
 typedef struct arith_eval_hooks {
-	arith_var_lookup_t lookupvar;
-	arith_var_set_t setvar;
+	arith_var_lookup_t    lookupvar;
+	arith_var_set_t       setvar;
 	arith_var_endofname_t endofname;
 } arith_eval_hooks_t;