veyron2/ipc: force all protocols, including tcp, to be registered.

- this change implements and uses a consistent mechanism for
  registering the stream transport protocols to be used with RPC.
- it treats 'tcp' the same as any other 'user defined' protocol, such
  as websockets or unixfd
- protocols are generally registered by importing their package, whose
  init function performs the actual registration.
- the protocol packages should only be imported by profiles.
- in a future change, I propose to move lib/tcp, lib/websocket and lib/unixfd
  to profiles/internal.

Change-Id: I139757441b865c9b22778d1f2d9d1d2586357d35
diff --git a/runtimes/google/ipc/stream/proxy/proxy.go b/runtimes/google/ipc/stream/proxy/proxy.go
index 0da73ce..eddef79 100644
--- a/runtimes/google/ipc/stream/proxy/proxy.go
+++ b/runtimes/google/ipc/stream/proxy/proxy.go
@@ -6,23 +6,23 @@
 	"net"
 	"sync"
 
-	"veyron.io/veyron/veyron/runtimes/google/ipc/stream/crypto"
-	"veyron.io/veyron/veyron/runtimes/google/ipc/stream/id"
-	"veyron.io/veyron/veyron/runtimes/google/ipc/stream/message"
-	"veyron.io/veyron/veyron/runtimes/google/ipc/stream/vc"
-	"veyron.io/veyron/veyron/runtimes/google/ipc/stream/vif"
-	"veyron.io/veyron/veyron/runtimes/google/ipc/stream/wslistener"
-	"veyron.io/veyron/veyron/runtimes/google/ipc/version"
-	"veyron.io/veyron/veyron/runtimes/google/lib/bqueue"
-	"veyron.io/veyron/veyron/runtimes/google/lib/bqueue/drrqueue"
-	"veyron.io/veyron/veyron/runtimes/google/lib/iobuf"
-	"veyron.io/veyron/veyron/runtimes/google/lib/upcqueue"
-
 	"veyron.io/veyron/veyron2/naming"
 	"veyron.io/veyron/veyron2/security"
 	"veyron.io/veyron/veyron2/verror"
 	"veyron.io/veyron/veyron2/vlog"
 	"veyron.io/veyron/veyron2/vom"
+
+	"veyron.io/veyron/veyron/lib/websocket"
+	"veyron.io/veyron/veyron/runtimes/google/ipc/stream/crypto"
+	"veyron.io/veyron/veyron/runtimes/google/ipc/stream/id"
+	"veyron.io/veyron/veyron/runtimes/google/ipc/stream/message"
+	"veyron.io/veyron/veyron/runtimes/google/ipc/stream/vc"
+	"veyron.io/veyron/veyron/runtimes/google/ipc/stream/vif"
+	"veyron.io/veyron/veyron/runtimes/google/ipc/version"
+	"veyron.io/veyron/veyron/runtimes/google/lib/bqueue"
+	"veyron.io/veyron/veyron/runtimes/google/lib/bqueue/drrqueue"
+	"veyron.io/veyron/veyron/runtimes/google/lib/iobuf"
+	"veyron.io/veyron/veyron/runtimes/google/lib/upcqueue"
 )
 
 var (
@@ -136,7 +136,10 @@
 	if err != nil {
 		return nil, fmt.Errorf("net.Listen(%q, %q) failed: %v", network, address, err)
 	}
-	ln = wslistener.NewListener(ln)
+	ln, err = websocket.NewListener(ln)
+	if err != nil {
+		return nil, err
+	}
 	if len(pubAddress) == 0 {
 		pubAddress = ln.Addr().String()
 	}