Use postMessage for widget and panel communication instead port object (#185)

A fix for #185.

As you can see 
* `object.postMessage({emitMessage: aData}, "*")` is the new `object.port.emit("emitMessage", {aData})`
* `object.on("message", function ({emitMessage: aData}) { ... })` + early `return` is the new `object.port.on("emitMessage", function (aData) { ... })`

Also changed some parameter name `data` to `aData`.