feat #329 Remove unnecessary code during Grunt build: part1

This commits brings a general-usage function to do recursive replacements
in the AST given the replacements conditions, and adds two sample visitors
that remove [$]descriptions from the beans and event definitions.

The visitors are also capable to compute the number of bytes saved in the
process (the number is displayed at the end of the build by a newly
created Grunt task).
fix #315 improved test case

This improves the test case pushed in
5dc63fd637810862291ce5e31a6688dac4556487. Under some circumstances, the
old test may fail.
feat #327 improve error messages in assertEquals/NotEquals/JsonEquals

1. Allow usage of %1 %2 in assertEquals messages

%1 and %2 are shortcuts for value1 and value2 params passed to
%assertEquals and can be used as placeholders in the error message.

This commit implements the feature (Assert.js) and changes some of the
unit tests to use the new capability.

2. Fix the obvious issue with the error message of
'assertNotEquals'.

3. Write serialized versions of JSON entities in assertJsonEquals
in case there's no default error message passed.

Close #327. Close #328.
doc Update build info after changing commands in package.json