use iframePhone for cross-domain embedding in CODAP

It's @rklancer's branch, comments:

> Additionally, removes extraneous iframePhone listener removal from the ParentMessageAPI singleton. This is necessary to allow dgExporter to add its own listeners (via IframePhoneRPCEndpoint)

> Note that this removal was extraneous anyway; the behavior of iframePhone.addListener is to replace the listener with the given name, so there was no danger of creating stale listeners if a ParentMessageAPI is created twice for some reason. Which I don’t think it ever is, anyway.