ijc review: switch to a KeyedUnion for the channels

Only the 'socket' kind needs a path. Future types will likely have
different arguments.

Signed-off-by: David Scott <dave.scott@citrix.com>