os: delete Exec, NewFile takes uintptr, rename ShellExpand, doc fixes

Delete O_NDELAY, O_NONBLOCK, O_NOCTTY, O_ASYNC.

Clean up some docs.

Rename ShellExpand -> ExpandEnv.

Make NewFile take a uintptr; change File.Fd to return one.
(for API compatibility between Unix and Windows)

Fixes #2947

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/5655045
diff --git a/src/pkg/net/fd.go b/src/pkg/net/fd.go
index 2352d22..607a6c1 100644
--- a/src/pkg/net/fd.go
+++ b/src/pkg/net/fd.go
@@ -228,7 +228,7 @@
 			s.CheckDeadlines()
 			continue
 		}
-		if fd == s.pr.Fd() {
+		if fd == int(s.pr.Fd()) {
 			// Drain our wakeup pipe (we could loop here,
 			// but it's unlikely that there are more than
 			// len(scratch) wakeup calls).
@@ -295,7 +295,7 @@
 	if raddr != nil {
 		rs = raddr.String()
 	}
-	fd.sysfile = os.NewFile(fd.sysfd, fd.net+":"+ls+"->"+rs)
+	fd.sysfile = os.NewFile(uintptr(fd.sysfd), fd.net+":"+ls+"->"+rs)
 }
 
 func (fd *netFD) connect(ra syscall.Sockaddr) error {
@@ -382,7 +382,7 @@
 		return 0, os.EINVAL
 	}
 	for {
-		n, err = syscall.Read(fd.sysfile.Fd(), p)
+		n, err = syscall.Read(int(fd.sysfile.Fd()), p)
 		if err == syscall.EAGAIN {
 			if fd.rdeadline >= 0 {
 				pollserver.WaitRead(fd)
@@ -476,7 +476,7 @@
 	nn := 0
 	for {
 		var n int
-		n, err = syscall.Write(fd.sysfile.Fd(), p[nn:])
+		n, err = syscall.Write(int(fd.sysfile.Fd()), p[nn:])
 		if n > 0 {
 			nn += n
 		}
@@ -615,7 +615,7 @@
 		return nil, &OpError{"setnonblock", fd.net, fd.laddr, err}
 	}
 
-	return os.NewFile(ns, fd.sysfile.Name()), nil
+	return os.NewFile(uintptr(ns), fd.sysfile.Name()), nil
 }
 
 func closesocket(s int) error {