ContentDialog: Input & Focus Management

Summary of changes:

- When a dialog has only one button, make it right-aligned and half the
  width of the dialog.
- Exposed dispatchEvent on WinJS.Application as _dispatchEvent so that
  tests can fire Application events synchronously.
- Input & focus management
  - Connect escape key and hardware back button to hide
  - Eat pointer events and clicks
  - Restore focus when dialog is dismissed
  - Prevent focus from escaping the dialog. Monitor all focus moves and
    if one is outside of the dialog, put focus back inside the dialog.
    But allow focus to move into Flyouts.
  - Avoid leaks when listening to events on global objects. Apply the
    _ElementUtilities._globalListener pattern to WinJS.Application and
    document.documentElement.
- API changes:
  - CSS class name changes
    - win-contentdialog-body -> win-contentdialog-dialog
    - win-contentdialog-dimcontent -> win-contentdialog-backgroundoverlay
    - win-contentdialog-content is now public
    - win-contentdialog-commands is now public
  - Property changes
    - isPrimaryCommandDisabled -> primaryCommandDisabled
    - isSecondaryCommandDisabled -> secondaryCommandDisabled
    - Exposed enum WinJS.UI.ContentDialog.DismissalReason