[BREAKING CHANGE] The great and terrible dialog refactor

Stand back.

Basic concepts:
* The difference between a dialog and an inspector is mostly to do with
  the window manager
* Sizing should be mostly symbolic and interpreted by the window manager
* Actions in windows should be abstracted by the window, so the child
  class doesn't dictate the location of the actions, only which ones are
  visible/available

Some definitions:
* Windows are now managed by a WindowManager
* Dialogs are windows with a title and an ActionSet
* ActionSets are dynamic selections of ActionWidgets that provide an
  abstraction between how the window wants to render actions and how the
  dialog interacts with them
* ActionWidgets are buttons with action and mode information
* ProcessDialogs are Dialogs with the title and safe and primary
  actions at the top and other actions in the foot
* MessageDialogs are Dialogs with all actions at the bottom in a
  column or row layout depending on available space, and a message in the
  body under the title

Some notes:
* When actions are clicked, getActionProcess is called and executed
* Actions are handled in getActionProcess and return a process that does
  something specific, otherwise they let the parent method take over,
  which will close the window safely
* Closing a window without any data is always the safe way, and won't
  (shouldn't) make any changes
* Dialogs should always use .next() in setup/ready and .first() in
  hold/teardown unless you have a very good reason otherwise (we don't
  have one yet)
* NodeDialog provides this.selectedNode between setup and teardown time
* ActionWidgets are available as this.actions within dialogs between setup
  and teardown time
* Window no longer emits any events

Primary Changes:
* OO.ui.WindowSet is now OO.ui.WindowManager, and it controls windows
* OO.ui.ProcessDialog is for complex dialogs and inherits
  OO.ui.Dialog
* OO.ui.MessageDialog is for alert/confirm dialogs and inherits
  OO.ui.Dialog
* OO.ui.Dialog provides a title label and actions API and inherits from OO.ui.Window
* OO.ui.ActionButton is a button used in dialogs to execute actions
* OO.ui.ActionSet manages OO.ui.ActionButton objects

Collateral damage:
* OO.ui.ButtonedElement frameless now framed with inverted value, plus a toggle method
* OO.ui.*Widget: hide and show merged into toggle
* OO.ui.PopuppableElement: showPopup and hidePopup are dead, use
  getPopup().toggle() instead
* OO.ui.Window: constructor config option "title" no longer supported, use
  static configuration or opening data instead
* OO.ui.Window: constructor config option "icon" no longer supported
* OO.ui.Window: static config "icon" is no longer used
* OO.ui.PopupWidget is sizable through config options
* OO.ui.PopupWidget: tail renamed to anchor
* OO.ui.PanelLayout has a little less padding
* OO.ui.PopupWidget
** Using overflow:hidden to avoid margin collapse
** Using z-index to avoid absolute or floating elements later in the DOM being on top
** Made $content config option end up in this.body instead of this.$element
** Fixed anchor alignment issues for left/right

Change-Id: Id121fc3aa988f7990511c7c6b03fa48645c69946