[BREAKING CHANGE] Make content isolation optional

Changes:

WindowManager.js
* No longer require manager as an argument to window, and instead set the
  manager after the window is added and ready to be loaded
* Add isolate option, which configures managed windows to isolate their
  contents using iframes
* Added shouldIsolate method for checking isolate config option state
* Bonus: Add preparingTo(Open|Close) promise tracking to avoid the black
  hole that occurs while processing preparing promises
* Bonus: Made opening a window while another is preparing, opening or open
  return a rejected promise with an error instead of waiting for it to
  open, closing it, and then opening it again, which seemed evil
* Bonus: Made openWindow and closeWindow methods actually return promises

Window.js, Frame.js
* Merged OO.ui.Frame into Window.js
* Made isolation optional
* Remove border compensation from getContentHeight which was evil and broken

TextInputMenuWidget.js
* Updated use of widget.$.frame to widget.$.$frame to check if a widget is
  in a parent or child frame, and access the frame's iframe element

Window.less
* Restricted font and overlay styles for dialogs to isolated windows only

WindowManager.less
* Made frames always expand to fill their parent div, making them visually
  identical to their non-isolated counterparts

Window.less
* Merged in Frame.less styles

Element.js
* Switched from taking OO.ui.Frame to jQuery selections of iframe elements
  as an argument for referencing the frame jQuery is bound to

ProcessDialog.js, MessageDialog.js and Dialog.js
* Updated use of this.frame.* to this.* as per merging of OO.ui.Frame and
  OO.ui.Window

demos/dialog.js
* Add toggle for isolate mode

Change-Id: I88e5e7ac7f078ab52230f1d5918b90ffc2f893e8
[BREAKING CHANGE] Set active and pressed on the buttoned element, not the button

This inconsistency between this and framed/frameless made the styles
quite confusing. This will give us more control over the styling,
allowing changes to the button's outer frame to be modified during
pressed and active states as well as the inner button.

While technically a breaking change, no code in any repository will
actually be affected by it.

Change-Id: Idd8b7d032409ce7d65e7536b5ec6e76379a0b8c8
Merge "[BREAKING CHANGE] Make content isolation optional"
Merge "[BREAKING CHANGE] Set active and pressed on the buttoned element, not the button"