QA: Create pages for Watchlist tests at runtime with API

I've been wanting to do this with a few tests in MF and VE
for a while now.

As you've noticed, this test is flaky occasionally.  Also,
I don't think the flakyness can be fixed by setting state
with ?action=unwatch and such as
https://gerrit.wikimedia.org/r/#/c/120938 tries to do.

The root cause of the flakyness problem is that more than
one running test is targeting the same page at the same time.
When the Firefox build and the Chrome build overlap so that
the Watchlist tests are both altering state on the Barack Obama
page simultaneously, at least one test is going to fail.

Given that the subject of the test is the Watchlist, eliminating
the flakyness boils down to either having the same test in different
builds use different users; or having the same tests in different
builds target different pages.  Targeting different pages for each
Scenario in each test at runtime is far easier and more secure and
more reliable than trying to manage different users.

For some time we have had this variable "@random_string" in place.
@random_string is created when a browser instance is created, and
persists as long as the browser instance persists.  We use it in VE
and Flow when editing in order to identify the edited thing later in
the test, and we use it in browsertests to create near-unique pages
to test page moves also.

And now we have the ability to call the Mediawiki API with
@random_string to create a page at runtime with a known title that
we can navigate to in the course of the test, and that's what this
test does.  The watched/unwatched state of each near-unique page
will be consistent, and each Scenario in each watchlist test will
have a target of its own, so they won't interfere with each other.

Change-Id: I21687083f0083e0435c1ac0490da817d17b0f015
Merge "QA: Create pages for Watchlist tests at runtime with API"