[BREAKING CHANGE] Create a MediaWiki theme

Theme logic:

There is now a theme class called OO.ui.Theme, which is extended and
instantiated by each theme. Elements ask the theme to update classes
after state changes, allowing themes to dynamically add/remove classes.

Demo refactor:

The demo now rebuilds from scratch whenever a mode change occurs,
allowing the various factors such as page, theme, graphics and direction
to be described using static configuration.

MediaWiki theme:

A first-stab at the MediaWiki theme based on some graphics assets
provided by the design team. Icons and many other details have been
copied from Apex, and need further customization.

Image generation:

Distribution images are now generated from a set of source SVG files.
Files are described in a JSON manifest and colored variants are
generated as specified.

When processing a theme's images.less file, @oo-ui-default-image-ext is
defined as either "svg" or "png", allowing both build targets to use the
same LESS code.

Breaking changes:

* Distribution resources have changed significantly
** oojs-ui[.svg][.rtl].css no longer exist
** Themes have a JavaScript file that needs to be included after
   oojs-ui.js
* Icon "add-item" has been renamed to "add"

Bonuses:
* The demo now has a graphics switch, so you can preview what it looks
  like with either vector or raster images
* There are no core images anymore, all images are part of a theme,
  allowing total customization without any baggage
* Unused icon "remove-item" has been deleted
* 'ieCompat' is now false for the SVG distribution, because IE 8
  doesn't support SVG images anyway. This is, however, a no-op because
  we don't actually embed any images.
* moduleUtils.js, which was used to poorly reimplement grunt multitasks,
  is no longer needed and has been removed.
* ComboBoxWidget styling fixed so the popup is always on top
  (z-index: 1) and the full width of the widget
* Change Apex popup widget styling to use CSS triangle trick to render
  anchor

Change-Id: Ieb27c3fd11d5b493823115c87970ac3d76fd41b3
Merge "[BREAKING CHANGE] Create a MediaWiki theme"