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...
That's how I tried to do it initially, but the `.contentWindow` would evaluate to `null` in cases where the iframe element was created but not appended to the DOM yet.  In some of those cases, it wasn't clear how to hook into when the element was actually created (the jquery element being appended to the DOM).