New:  Adding 'vars-on-top' rule (fixes #1148)

And what of `let` and `const` bindings, which are actually block scoped? Is the point to disallow block scoping entirely? No. The point is to declare all variables in one place, at the top of the closest scope boundary, before any uses of the variable. Am I somehow mistaken about this? This rule **does not** have to contradict `block-scoped-var`.