Bug 53727: Don't use \b to match (^|$|\s)

We use \b often to match (?:^|$|\s), but it does in fact match "the position
where a word character is not followed or preceeded by another
word-character.", where \w is equivalent to [A-Za-z0-9_]. (See
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#special-word-boundary)

Example:

    /\bfoo\b/.test('aaa:foo:bbb');
    true

* Replace \b with (?:^|\s) or (?=$|\s) and adjust uses of match() results
  accordingly to account for the consuming match in (?:^|s). If JS supported
  look-behind assertions we could use those instead.

* Convert some uses of .match() where the return value was not used into
  .test()

* Remove some tests for truishness which are not needed when using .test()

* Strip data-parsoid and data-mw early before comments are stripped, so that
  the simplistic comment stripping does not violate attribute boundaries. This
  fixes a few formerly blacklisted tests. The blacklist is updated
  accordingly.

Change-Id: I596623b5a96c41b9b1411db2a70630f08251ffe4
Merge "Bug 53727: Don't use \b to match (^|$|\s)"