pull out IFramePhone into its own module

@stepheneb in addition to adding IFramePhone to the Lab public-api it also removes Lab.structuredClone.
Within the Lab repository this seems fine, but perhaps outside of Lab repository the structuredClone test is being used. 

It would make sense to pull IFramePhone out as a separate build product so lab-examples could use it. This current work seems an incremental step in that direction.

This refactoring allows code within lab to also use the IFramePhone, for example it can be used by the iframe-model type. I also just noticed that it might be usable by the parent-message-controller as well.