move math routines from package sys to package math,
though they still build in src/runtime.

use cgo instead of hand-written wrappers.

R=r
DELTA=740  (289 added, 300 deleted, 151 changed)
OCL=23326
CL=23331
diff --git a/src/runtime/runtime.h b/src/runtime/runtime.h
index 735f1aa..bc6b2f7 100644
--- a/src/runtime/runtime.h
+++ b/src/runtime/runtime.h
@@ -370,15 +370,12 @@
 #define sys_printpointer sys·printpointer
 #define sys_printstring sys·printstring
 #define sys_printuint sys·printuint
-#define sys_readfile sys·readfile
-#define sys_semacquire sys·semacquire
-#define sys_semrelease sys·semrelease
 #define sys_setcallerpc sys·setcallerpc
 #define sys_slicestring sys·slicestring
 #endif
 
 /*
- * low level go -called
+ * low level go-called
  */
 void	sys_Goexit(void);
 void	sys_Gosched(void);
@@ -407,12 +404,20 @@
 void	sys_slicestring(string, int32, int32, string);
 void	sys_indexstring(string, int32, byte);
 void	sys_intstring(int64, string);
-bool	isInf(float64, int32);
-bool	isNaN(float64);
 
 /*
- * User go-called
+ * wrapped for go users
  */
-void	sys_readfile(string, string, bool);
-void	sys_semacquire(uint32*);
-void	sys_semrelease(uint32*);
+float64	Inf(int32 sign);
+float64	NaN(void);
+float32	float32frombits(uint32 i);
+uint32	float32tobits(float32 f);
+float64	float64frombits(uint64 i);
+uint64	float64tobits(float64 f);
+float64	frexp(float64 d, int32 *ep);
+bool	isInf(float64 f, int32 sign);
+bool	isNaN(float64 f);
+float64	ldexp(float64 d, int32 e);
+float64	modf(float64 d, float64 *ip);
+void	semacquire(uint32*);
+void	semrelease(uint32*);