Add support for collecting all errors, warnings and notes in one pass of compilation.
Add to |options| new parameter: |collector|, that is object with following functions:
- emitFatalError(...)
- emitError(...)
- emitWarning(...)
- emitInfo(...)

By default, |emitFatalError| and |emitError| throws |GrammarError| with all arguments, passed to them; |emitWarning| and |emitInfo| do nothing.
Fix some errors.
Now errors collected by the compilation stage (check, transform, generate etc.)
Also incorporate #208.
|GrammarError| captures stack in v8.
Fix small error and allow user pass they problem collector.
Fix usage function name from |options.collector| instead of function itself.
Add error message to |GrammarError|.
Add new passes:
- report rules, that redefined by other rules with same name
- report rules, than not used anymore.
Correct filename of new pass in Makefile
Fix incorrect pass name in compiler.
Merge branch 'new-passes' into trunk

Conflicts:
	lib/compiler/passes/report-left-recursion.js
	lib/compiler/passes/report-missing-rules.js
	lib/grammar-error.js
Fix |GrammarError| constructor after merge