IFrames in all the places!

Hi all,

After @KesterTong hacked together an outputarea IFrame implementation, I was determined to get the widgets to work with IFrames.  At first I thought this would be very hard to do, then after I saw Kester's output area implementation I thought it would be easy, but I was wrong, the implementation was difficult.  I had to detach the widget framework from any and all instance references to `cell`, `comm`, and `comm_manager` (this seemed to be the cleanest decoupling). It took a few days, but here is a **very** rough draft.  There are still loads of bugs and log comments everywhere.  I've tested it with the IntTextWidget across two IFrames:

![iframewidgets](https://cloud.githubusercontent.com/assets/3292874/3607443/fe47bb40-0d48-11e4-821b-58539a8dded8.png)

I'm going to continue hammering bugs into non-existance, clean everything up aesthetically, and then remove the logs.  Once I'm done with that, I'll need to tackle the test framework...  Which is probably going to be a disaster.

@KesterTong - I did work on this on the flight back, but it just turned out to be more work than I anticipated which is why I didn't have it done sooner (and I fell asleep when I got home).

Also pinging @ellisonbg as an update of what I've been working on.

I'll draw a diagram of how this all works tomorrow...
Ok, that makes sense.  Can you take a look at https://github.com/jupyter/colaboratory/blob/master/chrome/app/webview.js and https://github.com/jupyter/colaboratory/blob/master/colaboratory/resources/colab/js/app.js and see if you think that architecture would work better here?

The idea is that that the same interface is provided both inside and outside the iframe, but this interface is implemented differently.

Inside the iframe, it is implemented by to functions, colab.app.postMessage, and colab.app.addMessageListener.

Outside the iframe, there is a class that wraps the iframe, (it is actually a webview in the colab code) and also provides the messaging interface.

In your case, I think you could have a base class that is similar to the Webview class, which is then subclassed by your 3 frame classes.