Semiautomatically compare and synchronise JS and PHP docs

I wrote two Ruby scripts to compare the documentation, reviewed their
output and tweaked all of the files to match as well as possible.

I intend to use them further to generate some data for unit testing.

== docparser.rb ==

A quick documentation parser for our JS and PHP code, mostly
compatible with JSDuck and Doxygen syntaxes we use. Generates a JSON
file containing most of the interesting information for a set of
files. Run with -h for usage instructions and examples.

It has pretty much no error handling, so please write the docs
correctly ;) Some of the syntax errors I found running it are fixed in
previous commit I50fd658b, probably some more in this one.

* Supported keywords: constructor, class, method, property, var,
  event, extends, mixins, param, cfg, return, private, static, ignore
* Unsupported keywords: abstract, inheritable, deprecated, singleton,
  throws, chainable, fires, localdoc, inheritdoc

== doccomparer.rb ==

A quick documentation comparison tool for our JS and PHP code, using
docparser.rb. Generates a pretty-printed comparison of documentation
for two sets of files. Run with -h for usage instructions and examples.

Includes some hacks to lower the number of false positives where JS
and PHP language features, inheritance hierarchy or doc format
capabilities differ. (See #smart_compare_process and
#sanitize_description.)

Example output snippet:

  FieldLayout: JS/PHP
    Basic:
    Methods:
        #constructor: MISMATCH
            config: MISMATCH
                help: PHP missing
        onFieldDisable: PHP missing
        onLabelClick: PHP missing
    Properties:
        align: JS missing

So FieldLayout is missing documentation for the 'help' configuration
option in PHP (which is unimplemented right now), several event-handling
methods in PHP, and the 'align' property (we don't have JS non-static
properties documented at all right now).

One notable issue is that having a static and non-static property with
the same name is not handled, and several JS classes depend on that.
We should probably avoid it, as it's not allowed in PHP.

Bug: 72455
Change-Id: If9115dd5ac5dc7fb355abd03bb016a436eb3fca1
Merge "Semiautomatically compare and synchronise JS and PHP docs"