Add explicit tests for W027

This functionality was not previously covered by tests.
Fix bug in detection of unreachable statements

Ensure that when braceless block bodies contain braceless block bodies
(as is possible when the single statement has a function expression),
the parser correctly differentiates between branches when detecting
unreachable statements.

Achieve this by using a token decorator attribute (which is local to the
statement) instead of a global variable (which cannot account for
nesting).

Resolves GH-1387
Merge pull request #2025 from jugglinmike/1387-unreachable

Fix bug in "unreachable" warning