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/profiles/static/static.go b/profiles/static/static.go
index 2720f1d..86cda56 100644
--- a/profiles/static/static.go
+++ b/profiles/static/static.go
@@ -14,8 +14,11 @@
 	"veyron.io/veyron/veyron/lib/appcycle"
 	"veyron.io/veyron/veyron/lib/flags"
 	"veyron.io/veyron/veyron/lib/netstate"
-	"veyron.io/veyron/veyron/profiles"
+	_ "veyron.io/veyron/veyron/lib/tcp"
+	_ "veyron.io/veyron/veyron/lib/websocket"
 	"veyron.io/veyron/veyron/profiles/internal"
+	"veyron.io/veyron/veyron/profiles/internal/platform"
+	_ "veyron.io/veyron/veyron/runtimes/google/rt"
 	"veyron.io/veyron/veyron/services/mgmt/debug"
 	// TODO(cnicolaou,ashankar): move this into flags.
 	sflag "veyron.io/veyron/veyron/security/flag"
@@ -53,8 +56,8 @@
 }
 
 func (*static) Platform() *veyron2.Platform {
-	p, _ := profiles.Platform()
-	return p
+	pstr, _ := platform.Platform()
+	return pstr
 }
 
 func (p *static) Init(rt veyron2.Runtime, _ *config.Publisher) (veyron2.AppCycle, error) {