issue #30: begin implementing ranges support. Changes in grammar and handling in passes.

Conflicts:

	src/parser.pegjs
issue #30: Realize range in bytecode and in javascript generator, optimized for speed.
#30: Add description of new range feature to README.
#30: realize range feature in optimize=size mode.
#30: remove usage of BREAK opcode.
#30: remove usage of BREAK opcode.
#30: add support for delimiter.
#30: update code to latest `master` changes -- error handling rewriting.

Conflicts:

	src/parser.pegjs
#30: Fixes some bugs in auxiliary compiler passes.
#30: Fix existing, because renumbering opcodes.

Conflicts:

	spec/compiler/passes/generate-bytecode.spec.js
#30: Add range testcases.
#30: Fix bug with incorrect parsing, when after last delimiter no more elements. Example:

  start = 'a'|2..3, ','|;

on input:

  a,a,a,

now failed. If you need optional trailing delimiter, specify it explicitly in grammar:

  start = 'a'|2..3, ','| ','?;
#30: Add some more testcases.

Conflicts:

	spec/parser.spec.js
Fix a grammatic errors in the documentation. Thanks to @GerHobbelt.
Rebase to current master.

Conflicts:

	lib/parser.js
Rebase to current master.
Merge remote-tracking branch 'remotes/Mingun/issue_30'

Conflicts:
	lib/compiler/passes/generate-bytecode.js
	lib/compiler/passes/generate-javascript.js
	lib/parser.js
	spec/compiler/passes/generate-bytecode.spec.js
	spec/compiler/passes/report-left-recursion.spec.js
... and further reduction of the number of failing unit tests...
fix syntax-error unit test