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
> To make sure I understand: do you mean that this rule should ignore spacing for bare blocks?

Yep, it might be considered as contradiction to the name and documentation of the rule. And if we give this logic to this rule we should give the opposite logic for the more popular `require` rule, it looks like no one would want that even if this is an edge case.

> It's a side effect of the changes I made

Yeah, i gather that, but it should be relatively easy to add workaround for it though.