* Use a stringified JSON details object for extension port names
* Fix incorrect frame ID check
* Add support for connecting to different tabs
* Add function for invoking on a different tab
* Refactor searchQueryUpdate action
* Use standard message handler style
* Use name "promiseOrResult" for consistency
* Use standard message handler convention for Yomichan message handlers
* Use common message handler invoker
* Add support for dynamic message handlers
* Pass messages using crossFrame.invoke instead of contentWindow.postMessage
* Set up async handlers
* Simplify configure call and response