Module for user tokening and bucketing

* Create the mw.gettingStarted.user object, which can be used to get a
  user's token and the bucket that they are in (getToken and getBucket
  respectively)
* Make mw.gettingStarted.user.getToken transparently persist the token
  to a cookie for 90 days

Based on prior commit, 533c7f3b5821f6637f349dd0fd8ecd6a0de660d0, which
caused a Varnish problem due to having Token in the cookie name.

This replaces it with Id, and adds a - so the prefix doesn't run into
into the name.  It still has the exact string 'gettingStarted', so the
Varnish workaround at Ice1648d1c240af087992f31781887f561f55b288 will
apply.

See https://meta.wikimedia.org/wiki/Research:Anonymous_editor_acquisition/Signup_CTA_experiment

Change-Id: I34ed8bc0f8143dac981114e3cd125511ac66537a
Assign token when users hit edit page, TrackedPageContentSaveComplete

Assign token to users (anonymous and logged-in) when they hit the edit
page, or start VisualEditor.

This is partly based on 99286bb24e86185fa7a0759588ec09ee74b2cd8c
(previous token-assignment and instrumentation commit) and
0477aa472a6a49f943097d6431ea7c44ecb310ca (fix to $revision), but the
token-assignment part is different.  Unlike before, we are only
assigning a token when it looks like they're about to edit.

See https://meta.wikimedia.org/wiki/Research:Anonymous_editor_acquisition/Signup_CTA_experiment
for more information.

Change-Id: I8d6dfed8faf9fc087bcf7f3d87c60e1d7721824f