Fix buggy token passing in parserFunctions expandKV and rejoinKV.

* expandKV and rejoinKV were not always passing tokens back in
  { tokens: token-array } form to the callbacks.  This was caught
  by verifyTokensIntegrity check in Async TTM on the following
  wikitext snippet from en:England_national_football_team

{{Football kit |
| pattern_la= |pattern_b= |pattern_ra= |pattern_sh= |pattern_so=
| leftarm=fff|body=fff|rightarm=fff|shorts=fff|socks=000000|title= Home
}}

* Surprisingly parsing the page via localhost:8000/en/... didn't
  report the error to the console.  Neither did a rt-run through
  roundtrip-test.js.  Need to check where the error went in case
  the error message got lost rather than a different code path
  getting exercised because of async. related reasons.

* Unrelated:
  - s.res.tokens.rank wasn't being updated in maybeAsyncReturn.
  - It appears some cb's in parserFunctions return {}.
    Tweaked verifyToksIntegrity to accept {} and return
    { tokens:[] } instead.
  - verifyToksIntegrity result wasn't being used in certain cases.

* No change in parser test results.

Change-Id: I15e4f922f259382e3241b2da7a8a22ec9b498841
Merge "Fix buggy token passing in parserFunctions expandKV and rejoinKV."