(Bug 50068) Make DSR adjustments based on treebuilder-corrections

* mw:Placeholder/StrippedTag meta tags record information about
  deleted tags (and represent non-zero width wikitext in source).

  Similarly, autoInsertedEnd/Start flags on data-parsoid of nodes
  record information about added tags (and represent zero-width
  wikitext in source).

* In edit-mode, mw:Placeholder/StrippedTag meta tags are removed
  which effectively creates a dsr-hole where it was removed from
  and can lead to missing wikitext when selser uses that DSR
  during serialization. Bug 50068 is an instance of this.

  "Foo '''''bar''''' baz" parses to the HTML below.  Notice that
  the <i> tag spans from 4-14 and loses 3-chars worth of information
  about the closing </b> tag.
-------------
<p data-parsoid='{"dsr":[0,21,0,0]}'>Foo <i data-parsoid='{"dsr":[4,14,2,2]}'>
<b data-parsoid='{"autoInsertedEnd":true,"dsr":[6,12,3,0]}'>bar</b></i>
baz</p>
-------------

  In editMode false, the HTML output is (notice the placeholder below)

-------------
<p data-parsoid='{"dsr":[0,21,0,0]}'>Foo <i data-parsoid='{"dsr":[4,14,2,2]}'>
<b data-parsoid='{"autoInsertedEnd":true,"dsr":[6,12,3,0]}'>bar</b></i>
<meta typeof="mw:Placeholder/StrippedTag" data-parsoid='{"src":"&#39;&#39;&#39;","dsr":[14,17,null,null]}'>
baz</p>
-------------

* This patch attempts to patch DSR by assimilating the gap into
  previous siblings.  Given that some instances of deleting an end
  tag correspond to the same end tag being reinserted elsewhere in
  the DOM (ex: badly nested HTML <span>
x</span>
), we also
  have to make a fixup in the reverse direction on a node that has
  autoInsertedEnd set.

  This strategy is at best a heuristic that will not always work
  properly -- work in progress.

  This heuristic is currently limited to I/B tags.

* Fixes the bug + several selser tests around quotes.

* Unrelated fixes:
  - Minor tracing cleanup.
  - Removed stale comment in one place.

Change-Id: I69bda7db141a3302cee6ece5af5ffdc57e748d89