Created a new abstract iframe component

IFrame component which handles rendering, show/hide, and communication with the iframe

Adapted System Messages Dialog and the Terms Widget to use this new component.
Fixed some issues with setting id attribute.

@tejohnso please review. Thanks.