Fix bug in "unreachable" warning

While working on GH-1387, I found that the project has no tests for W027. The first commit adds some basic tests, and the second commit (message below) addresses the bug.

> 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