Generate and run a JS/PHP comparison test suite

bin/testsuitegenerator.rb
  Quick-and-dirty code to build JSON data for our test suite comparing
  the output of JS and PHP versions of OOUI. Uses data gathered by
  docparser.rb and some hand-coded information to generate reasonable
  configuration options for each class. Classes that take non-optional
  parameters are currently not supported, thus we have no comparison
  tests for them.

tests/JSPHP-suite.json
  This is the suite generated by testsuitegenerator.rb. It makes sense
  to me to commit it.

tests/index.{html → php}
tests/JSPHP.test.js
tests/QUnit.assert.equalDomElement.js
  Glue code to run the suite as QUnit tests. Test helper adapted from
  VisualEditor with changes to compare properties as well as attributes.

php/OoUiTag.php
  * Don't generate empty class="" attribute when there are no classes
    to add.

php/elements/OoUiIconElement.php
php/elements/OoUiIndicatorElement.php
  * Actually support setting no icon/indicator. Previously, once one
    was added, it could never be removed.

php/elements/OoUiLabelElement.php
  * Convert whitespace-only labels to &nbsp;, like in the JS version.
    I don't understand why we want to do this, but let's be
    consistent.
  * Set style="display: none;" for empty labels, like in the JS
    version. I have absolutely no idea why we want to do this, either.

Bug: 72588
Change-Id: I52bd98ee54ffe2b2bd00ddf604b9b22532ebd892
Merge "Generate and run a JS/PHP comparison test suite"