[FEATURE] IPC Messaging between Sandbox and shovel

Sandbox.postMessage sends messages through to the sandboxed code
User code can handle incoming messages by defining global `onmessage` function
User code can send messages through to the outside of the sandbox by using global `postMessage` function
Sandbox.on('message', function(message){...}) can be used to handle messages sent by sandboxed code
Added tests, example, and documentation