Widget Messaging Protocol (IPEP 21)

This implements [IPEP 21: Widget Messaging](https://github.com/ipython/ipython/wiki/IPEP-21:-Widget-Messages).
Isn't this a 128-bit UUID?   Seems like you should store it as a `Base.Random.UUID` (128-bit integer) rather than as a `String`.