VMDataBridge - Passing information out of the VM mid-execution

@lukechurch @ikeough

Now with working preview bubbles for CBNs!

![cbn-bubble](https://cloud.githubusercontent.com/assets/1699155/3588715/7aac2a8a-0c46-11e4-82d0-108cfc86c6de.PNG)

Preview bubbles still rely on MirrorData, so they will not work inside of Custom Nodes. It should be possible, however, to leverage VMDataBridge when compiling Custom Nodes so that preview bubbles work the same way the watch node does.

----

This PR contains a new library, `VMDataBridge`, that allows for external libraries to register callbacks that will receive data from the DS VM mid-execution. It also contains changes to the `Watch` and `Watch 3D` nodes that leverage this library in order to live-update while the VM is executing.

Not only does this allow you to visualize data changes inside of loops (as demonstrated by my previous Game of Life demo), but it also allows you to see data inside of a Custom Node:

![customwatch](https://cloud.githubusercontent.com/assets/1699155/3543542/53a10de8-0863-11e4-8190-84fb2b04f50a.PNG)
I'm not really sure that the value we get out of real Guid objects vs strings is worth it here. Consider using Dict <String -> Action>