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...
More specifically, `CodeCell` creates the `WidgetAreaFrame` and `OutputareaFrame` and appends it to it's own element in the `create_elements` method.  But it's own element isn't actually appended to the DOM yet, so appending the IFrames to it doesn't actually create IFrames in the DOM (`outputarea_frame.$el[0].contentWindow` will evaluate to null).