Handle Chrome extension Port object

As described here the api is of ports within an extension is onMessage.addListener and while it does respond to addEventListener, 
mixed usage is problematic since the listener set by addEventListener is overwritten.
http://developer.chrome.com/extensions/runtime.html#type-Port
Merge pull request #31 from francoisfrisch/chrome-extension-onmessage

Handle Chrome extension Port object