PEG.js grammar: Add missing semicolon

Fixes the following JSHint error:

  lib/parser.js: line 108, col 54, Missing semicolon.
PEG.js grammar: Fix line continuation handling in character classes

Before this commit, line continuations in character classes contributed
an empty string to the list of characters and character ranges matched
by a class. While this didn't lead to a buggy behavior with the current
code generator, the AST was wrong and the problem could have caused bugs
later.

This commit fixes the problem.
PEG.js grammar: Improve the |Code| rule a bit

Instead of matching segments between blocks character by character,
match them as a whole. Also align the style with other similar rules
(e.g. the comment ones).
JavaScript example: Fix parsing of statements

Fixes a problem where statements starting with a reserved word produced
errors like this:

  Reserved word "return" can't be used as an identifier.

The problem was in a wrong ordering of choices in the |Statement| rule
together with aggressive reserved word detection in the |Identifier|
rule.
JavaScript example: Fix automatic semicolon insertion

Fix parsing of inputs like this:

  foo() // comment
  bar()
Add new |region| function which can be used in actions and returns object:
`{ begin: <beginPos>, end: <endPos>}`, where <beginPos> and <endPos> are:
`{offset: <offset>, line: <line>, column: <column>}`
for begin of match rule and end of match rule accordingly.

Also, if call |region(true)|, also will be present field |text| with input part of match (similarly |text()| function).

Add new function invocation to all AST nodes (as |region: region()|), so compiler passes may forming more informative error messages.

Conflicts:

	src/parser.pegjs

Conflicts:

	src/parser.pegjs
Regenerate parser and upgrade testcases to new feature.
As side effect, small bug fix: instead of |simple not| |simple and| was checked in |report-...| specs.

Conflicts:

	lib/parser.js
Rebase to current master.