Revert "PEG.js grammar: Disallow empty sequences"

This reverts commit df154daafb9c6c952351493af02d3a55e0b05c59.

Conflicts:
	lib/compiler/passes/generate-bytecode.js
	lib/parser.js
	spec/parser.spec.js
	spec/unit/compiler/passes/generate-bytecode.spec.js
	src/parser.pegjs
Merge branch 'allow-empty-sequences' into trunk

Conflicts:
	lib/parser.js
	src/parser.pegjs
Now functions are stored separately from other constants -- is will allow to generate parser on other languages and more easy replace actions.
Alos, this helpful for better hide of pegjs internals from initializers code and function code, that needed for include grammars feature.
Use field `actions` in grammar node instead of `consts`.

Conflicts:

	lib/compiler/passes/generate-javascript.js
Correct testcases.

Conflicts:

	spec/unit/compiler/passes/generate-bytecode.spec.js
Regenerate parser.
Remove access form user code to pegjs internals. This break some grammars, that need that,
for example, BerTLV or intendation-based parsers, that need access to `peg$currPos`.
Update GitHub project URLs

See https://groups.google.com/d/msg/pegjs/4a6zWKQSG6U/n8Pm257Lz6wJ.

I didn't update CHANGELOG.md as I consider issue URLs there historical artifacts
;-)
Add support for functions from distinct namespaces.
Javascript code for distinct namespaces generated in separate functions, so they not influence one to other.
Regenerate parser.
Correct testcases.
Add new testcases.
Support in grammar. Import clause:
@<alias> = <string with path to .pegjs file>

Import clauses expected before initializer code block.

Usage of imported rules:
- @<alias> -- use default parse rule (first in imported grammar).
- @<alias>:<rule> -- use specified parse rule.

Implementation:
- All import clauses appears in AST `grammar` node in `imports` node property.
  This property contains array of AST `import` nodes with properties `alias` and `path`.
- All AST `rule_ref` nodes now have `namespace` property with alias of imported
  grammar or `null` if rule defined in the grammar itself. Also, if `name` property is
 `null` and `namespace` property is not, then will be used default rule of imported grammar.
Correct testcases.
Common support in compiler -- skip some checks for references to imported rules.
Add testcases for import clause.
Regenerate parser (support import clauses).
Merge branch 'import-feature-syntax' into include-pass

Conflicts:
	lib/compiler/visitor.js
	lib/parser.js
	spec/unit/parser.spec.js
	src/parser.pegjs
Add Bower installation instructions
Add info about the Bower package maintainer
Make |report-left-recursion| pass bullet-proof. Now it can detect such situations as:
- r = 'a'? r
- r = 'a'* r
- r = !'a' r (lookahead not advance parse position)
- r = &'a' r (lookahead not advance parse position)
- r = !{} r (lookahead not advance parse position)
- r = &{} r (lookahead not advance parse position)
- r = '' r (empty literal not advance parse position)
- r = [] r (empty character class not advance parse position)

Fixes #190 and #26.