fix(Communicator): communicator now only uses iframe when cross domain

Previously, the communicator would always try and use an iframe, even when the
resource was on the same domain as the requesting page. This added the overhead
of instantiating the iframe, even if a cross domain request hadn't been made.

By reusing getDomainName() from the window.postMessage checking logic, we can
attempt to do a normal XMLHttpRequest if the domains match.

BREAKING CHANGE:
If you had logic that was depending on the iframe existing, then it may not
always be available. Making a cross domain request will establish the iframe.