Remove MW-specific mobile hack from core

Moved to MW in Ica837abd.

Change-Id: I94491de87d9cc7d0ecbd971ae9efd4ef10850858
Fix paste by never polling while pasting

Follow up to I99b99e8 (unicorns) which causes a surface observer poll
in between beforePaste and afterPaste, setting the selection to null.

Change-Id: I3cdfe7963d0880d2b9e19e9a384d73c99e9c3b80
Fix theme on mobile-dist

Mobile was moved form minerva to MW, but not mobile-dist.

Change-Id: I914a66ea57d07185517ca1bf3d578074d146dcb5
Replacing push.apply with newly created ve.batchPush in VE core

Bug: 66206
Change-Id: I618b3022007c2cec5ca4237e42d48c4df431498f
Merge "Fix paste by never polling while pasting"
Followup 2432cbf: add recursion guard to updateSlug

popStaging() changes the model selection, then onModelSelect()
calls updateSlug() which calls applyStaging(). This is bad, and
the only reason this doesn't fail spectacularly is because we
didn't have multiple active staging levels.

The only reason we even noticed this is because we were
re-getting the range from this.slugFragment, but this.slugFragment
had been nulled out by the recursive call to updateSlug(),
so we got a JS error. This fixes that, but we also
already had this range lying around, so use it.

Bug: 72095
Change-Id: Ie50805a12ec2af3f0e1d97a4e64751a9b74fc422
Merge "Followup 2432cbf: add recursion guard to updateSlug"
Update OOjs UI to v0.1.0-pre (98cecf304d)

New changes:
98cecf3 Support MenuWidget's config.widget being in a different document

Change-Id: Ifc30790e67926bbdda0a8d5ec9464e7046f984ea
Update OOjs UI to v0.1.0-pre (1829141230)

New changes:
393fd80 TextInputMenuWidget: Handle undefined value properly when toggling visibility

Change-Id: I4f6a7f62803d441de53271c645f07f76d23b3d06
Prevent observeration during copy and paste

Change-Id: I2b368b0d0ecf487b1559be85447ce36debe1effa
Factor out selection of entire pasteTarget

Change-Id: I9fe66a8c60aacaa09617ff72fb2bf58a151d0652
Fix clipboardData API path on copy

Newer versions of Chrome return undefined for DataTransfer#setData
however we can still check for the presence of a fully featured
DataTransfer object by checking for the 'items' property.

Unfortunately this isn't robust feature detection so we'll need to
monitor the situation.

Change-Id: I52fbbe7597f4779b07c619a1ce601b9a7f504cc4
Update OOjs UI to v0.1.0-pre (99ec31d9b9)

New changes:
6298415 ButtonWidget: Fix titled button
918ebed MediaWiki theme: Fix styling of SearchWidget
bd03644 Refine global event handling in non-isolated window managers
9a7633c WindowManager: Wait for window to open before trying to close it
5516490 Element: Correct method name reference in documentation
99ec31d Position popups and their anchors correctly in RTL

Change-Id: I4266c58ec1a2e6cee54ffc55891a5c2097f0222f
Localisation updates from https://translatewiki.net.

Change-Id: I1be1b6df176e7573e30f497982f492c32ec84040
Replace calls to ve.bind( fn, ... ) with fn.bind( ... )

No more PhantomJS, so we should be able to do this.

Bug: 62762
Change-Id: I823f118a2f6643efa4f88c86010300e861894166
Merge "Replace calls to ve.bind( fn, ... ) with fn.bind( ... )"
Use local var instead of bind() for inline functions

Follows-up d3f26e653a4c. Using .bind() makes sense for binding a
function reference, but when the function is inline, might as
well use a local variable.

* Reduces code complexity.
* Makes code slightly faster.
* Easier to read (no need to visually track which 'this' this is,
  variables have descriptive names).
* Easier to maintain.
* Better static analysis.

In terms of memory holding, the result is the same since inline
functions naturally hold on to the containing closure due to
lexical scope.

Replaced all instances of "}.bind" in src/.

Left instances of "identifier.bind" alone.

Example:

	var widget = this;
	promise
		.always( function ( opened ) {
			opened.always( function ( closed ) {
				closed.always( function () {
					widget.foo();
				} );
			} );
		} );

Instead of:

	promise
		.always( function ( opened ) {
			opened.always( function ( closed ) {
				closed.always( function () {
					this.foo();
				}.bind( this ) );
			}.bind( this ) );
		}.bind( this ) );

Change-Id: I797a3667c67d52568150be9be5d043d149f22077
Merge "Use local var instead of bind() for inline functions"
Get rid of toHashObject from ranges/selection

toJSON is supposed to return an object, which is converted to a
string in JSON.stringify, so the getHashObject step is unnecessary.

Change-Id: I5d1f32eedfbcc5f8079eee890e76047bc85b1de3
Fix contextChange events from annotations

'contextChange' should be emitted whenever the covered annotations
change, not just insertion annotations.

Bug: 72152
Change-Id: I6b680a7e6e2992764b59bfdce53ae99c3b5deb1d