disallowSpaceBeforeBlockStatements: fix if/else

This rule did not correctly handle the case where there was an `if` with an
`else` or an `else if`. It also did not handle the rarer case where the file
started with a block.

Fixes #832
@markelog To make sure I understand: do you mean that this rule should ignore spacing for bare blocks? It's a side effect of the changes I made that a space before bare blocks is now an error, I'll have to figure out how to special-case it if they're to be ignored.