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 annotations to grammar and regenerate parser.

Conflicts:

	lib/parser.js
	src/parser.pegjs
Correct testcases.

Conflicts:

	spec/parser.spec.js
Add testcase for parsing annotations.
Add utilities for finding annotations in rules.
Correct behaviour when annotation has no params -- now |params| field is empty array, not |null|. So,
@Annotation
and
@Annotation()
forms are completely equivalent. Also add testcases for parsing annotations with params.

Conflicts:

	lib/parser.js
	spec/parser.spec.js
Rebase to current master.

Conflicts:

	lib/parser.js
Rebase to current master.