go.net/websocket: optimize frame masking code
From Jens.Alfke@gmail.com.
Fixes golang/go#5269.

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/8748050
diff --git a/websocket/hybi.go b/websocket/hybi.go
index f9e891d..0023d1c 100644
--- a/websocket/hybi.go
+++ b/websocket/hybi.go
@@ -216,10 +216,9 @@
 		}
 		header = append(header, frame.header.MaskingKey...)
 		frame.writer.Write(header)
-		var data []byte
-
-		for i := 0; i < length; i++ {
-			data = append(data, msg[i]^frame.header.MaskingKey[i%4])
+		data := make([]byte, length)
+		for i := range data {
+			data[i] = msg[i] ^ frame.header.MaskingKey[i%4]
 		}
 		frame.writer.Write(data)
 		err = frame.writer.Flush()