Widget Messaging Protocol (IPEP 21)

This implements [IPEP 21: Widget Messaging](https://github.com/ipython/ipython/wiki/IPEP-21:-Widget-Messages).
On Thu, Aug 7, 2014 at 7:47 PM, Steven G. Johnson <notifications@github.com>
wrote:

> In src/comm_manager.jl:
>
> > @@ -0,0 +1,138 @@
> > +module CommManager
> > +
> > +using IJulia
> > +
> > +import IJulia: Msg, uuid4, send_ipython, send_status, msg_pub
> > +
> > +export Comm, comm_id, msg_comm, send_comm, close_comm, on_msg,
> > +       on_close, register_comm, comm_msg, comm_open, comm_close
> > +
> > +
> > +immutable Comm{target, id}
>
> I'd like to make sure that we parse any UUID into a canonical form before
> comparing it to another UUID, so the introduction of - shouldn't matter.
>
Yes we could parse them as UUID values and compare, but sometimes the front
end will produce UUIDs and these come without -'s (e.g. when it wants the
backend to create a secondary Comm). Upon receiving these UUIDs as strings,
we parse them to UUID type -> use them for dict lookup / comparision etc ->
convert them back to string -> send to IPython frontend, but IPython front
end now compares our format with its own. Although they are both the same,
this comparison will fail because our format has extra '-' characters.