style: enforce spaces after keywords, add spaces

Moving the `requireSpaceAfterKeywords` rule to jscs with associated changes.

Is it preferred to explicitly specify the keywords in an array?

Or use `requireSpaceAfterKeywords = true`
which is equivalent to `requireSpaceAfterKeywords = [ 'do', 'for', 'if', 'else', 'switch', 'case', 'try', 'catch', 'void', 'while', 'with', 'return', 'typeof', 'function'];`

Although it doesn't make sense for `function`.

cc: @caitp
Yeah can be done.

For all functions (declaration, named expression, anon expression)
```
"disallowSpacesInFunction": {
    "beforeOpeningRoundBrace": true
}
```

If you want to be specific:

```
disallowSpacesInFunctionDeclaration
disallowSpacesInNamedFunctionExpression
disallowSpacesInAnonymousFunctionExpression
```

You can also enforce a space before the parentheses.

```
"requireSpacesInFunction": {
    "beforeOpeningCurlyBrace": true
}
```

So with both rules it should be
```
function a() {

}

var a = function() {

}

var a = function a() {

}
```