New Rule: requirePaddingNewlinesBeforeKeywords

Requires an empty line above the specified keywords unless the keyword is the first expression in a block.

Configured like so:

```js
"requirePaddingNewlinesBeforeKeywords": ["if", "for", "return", "switch", "case", "break", "throw"]
```

The intent of the rule is to introduce newlines (whitespace) between expressions.  Many libraries and individuals already follow this type of convention intuitively.

The rule simply transforms code like this:
```js
String.prototype.hashCode = function () {
    var hash = 0, i, char;
    if (this.length == 0) { return hash };
    for (i = 0, l = this.length; i < l; i++) {
        char = this.charCodeAt(i);
        hash = ((hash << 5) - hash) + char;
        hash |= 0; // Convert to 32bit integer
    }
    return hash;
};
```

into code like this:
```js
String.prototype.hashCode = function () {
    var hash = 0, i, char;

    if (this.length == 0) {
        return hash
    };

    for (i = 0, l = this.length; i < l; i++) {
        char = this.charCodeAt(i);
        hash = ((hash << 5) - hash) + char;
        hash |= 0; // Convert to 32bit integer
    }

    return hash;
};
```

Note the empty lines above the if, for and return.
Please correct the indentation