New Rule: requirePaddingNewlinesBeforeKeywords

Requires an empty line above the specified keywords unless the keyword is the first expression in a block.

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.