Introduce control channels for ManagedProcess

A control channel is a wrapper around a typed channel that can be used
to prioritise one class (i.e., type) of input messages over others. As
an alternative to prioritised process defs, this offers both a much
lower latency and a simpler runtime cost model. The disadvantage is
that wiring the control channel into the process definition’s handlers
is somewhat awkward, and the same is true for getting a handle to the
underlying SendPort, though at least that is Serializable so we can
send the port elsewhere when required.