Add support for adding arbitrary iframe widgets.

This introduces arbitrary iframe widgets using the method I mentioned earlier in our discussion: introducing a "type" field and ng-switching on it to the correct controller and sub-view.