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).