New channel interface

Add a new single channel interface for sending receiving with support for dynamic types.  Any type can contain channels or bytestreams as field values and communicate them over a channel.  This is a work in progress and up for early review.