Widget Messaging Protocol (IPEP 21)

This implements [IPEP 21: Widget Messaging](https://github.com/ipython/ipython/wiki/IPEP-21:-Widget-Messages).
Just found out: If I'm not wrong, there is no way to convert a uuid string to a UUID value. And JSON when parsed gives only a string.