Implement hiding by current user.

Masking recent comments while loading, and remembering of filters
of recent comments.
Fix syntax error in hideCurrentUser server side code.

Also remove check for commentMeta.reads - copy paste error.
Replace data-url with actual gif file.

Also rename #recentcomments-container to #comment-index-container for
consistency.

And remove absolute positioning from comment controls that's no more
needed.
Refactor masking of recent comments page.

Add #setMasked method to comments view and use that for
masking/unmasking.
Use localStoreage for saving recent comments settings.

No need to use cookies, we already have Docs.Settings class that uses
localStorage and is meant just for that - storing various settings.
Refactor how checkboxes are bound to settings.

Encapsulate the checkboxes completely inside commentindex view, which
does the saving of checkbox states completely within itself, only
firering settingChange event for the controller to listen on.
Merge branch 'recent-comments-improvements'
Fix output of parsed Google closure compiler type annotations.

The output of parsing was only barely tested and so some things were
just completely missing from output.
Improve comments date formatting.

Use round() instead of ceil() when calculating "x units ago". Using
ceil() resulted in:

 - 59 seconds ago --> just now
 - 60 seconds ago --> 1 minute ago
 - 61 seconds ago --> 2 minutes ago

The same happened with other units.  With rounding the 1 minute period
is much larger than just 1 second.
Remove "months ago" from comment date formatting.

For over month old comments, showing the date is more informative -
people usually know which month it is now.  Telling 6 months ago doesn't
tell me if the comment was posted in previous year - much more
informative is to just say it was posted in November '11.
Completely remove comment action types.

Users aren't really able to decide whether they just want to post a
comment or report a problem.  Practice showed that the "problem" action
was used more or less randomly.  So getting rid of it completely.

Removed the whole action-combo and related HTML.  Incorporated some of
the help text into the general commenting help section.

To clean up "action" field from database, run:

    db.comments.update({}, {$unset: {action: 1}}, false, true)
Merge branch 'master' into esprima-parser
Replace default value parsing with simpler implementation.

Instead of using JsLiteralParser, we just scan the string and attempt to
balance braces.  It's not really fool-proof, but should easily cover
more than 99% of use cases.  The only problem is when a default value
contains a string with "[" or "]" in it - but then it can be just
documented manually.

Getting rid of this use of JsLiteralParser and JsLiteralBuilder will
allow us to get rid of those classes together with JsParser completely -
replacing them with EsprimaJS.
Use #match and #look methods in DocParser.

For some reason I had used @input.scan and @input.check directly -
although I had created shorthands for them.

Now everything should be more consistent.
Refactor default value and typedef parsing.

Create a helper function #parse_balanced for parsing text which requires
balancing braces.
Remove old JsParser completely.

Together with JsLiteralParser and JsLiteralBuilder.
Rename EsprimaParser to JsParser.

Also rename EsprimaCore to just Esprima.

EsprimaParser is the new JsParser.

Hurray... finally!
Split @cfg and @property specs into two files.

Eliminate the aggregator_cfgs_and_properties_spec.rb and place the
@cfg tests to one file and @property tests to another.

Also remove some redundant tests.
Split @method and @event specs to multiple files.

Instead of one big spec file, tests are now grouped by tags:

- @method
- @event
- @param
- @return
Don't lose line number data while merging.