move ShortWrite error into io so that other packages can use it.

R=r
DELTA=15  (7 added, 1 deleted, 7 changed)
OCL=28996
CL=28996
diff --git a/src/lib/io/io.go b/src/lib/io/io.go
index b283593..70c82d5 100644
--- a/src/lib/io/io.go
+++ b/src/lib/io/io.go
@@ -13,12 +13,19 @@
 	"os";
 )
 
-// ErrEOF is the error returned by FullRead and Copyn when they encounter EOF.
+// Error represents an unexpected I/O behavior.
 type Error struct {
 	os.ErrorString
 }
+
+// ErrEOF means that data was expected, but a read got EOF instead.
 var ErrEOF os.Error = &Error{"EOF"}
 
+// ErrShortWrite means that a write accepted fewer bytes than requested
+// but failed to return an explicit error.
+var ErrShortWrite os.Error = &Error{"short write"}
+
+
 // Reader is the interface that wraps the basic Read method.
 type Reader interface {
 	Read(p []byte) (n int, err os.Error);