Implement requireSpacesInsideParentheses

Implements requiredSpacesInsideParentheses option with "all" and
"allButNested" options.

* "all" - requires spaces after opening and before closing parentheses

* "allButNested" - allows writing nested brackets immediately next
to parentheses

Resolved #313, Closes gh-333
Add new rule to google preset

Disallow spaces inside parentheses in google preset
Fix up code style issues

Since google preset was updated and we used for jscs source

Closes gh-333
More code style fixes
Update google preset

* Google preset is still work in progress

* Add exception for "disallowKeywords" rule for JSCS config
Dropped analogs of jshint options in jquery preset

Since JSHint 2.5 version "smarttabs" and "tralling" options were dropped,
which means now we can use them in the presets
Differentiate errors for requireSpaceAfterKeywords

Trigger different error if there is more than one space

Fixes #396
Improve handling comments for *SpaceAfterKeywords

Fixes #397
Improve error message for *SpaceAfterKeywords
Function expressions ignore getters and setters

Added a check to the following rules:

* disallow-spaces-in-anonymous-function-expression
* disallow-spaces-in-function-expression
* require-spaces-in-anonymous-function-expression
* require-spaces-in-function-expression

These rules erroneously interpreted setter and getter expressions like
these as full function expressions:

    {
      get x () {
      },
      set x (v) {
      }
    }

This made it impossible to run jscs on JS code that used these constructs,
as it threw false errors whenever it encountered them.

The bug was caused by the fact that esprima actually registers these constructs as
functions assigned to a property with the special kinds 'set' and 'get'.
This patch checks the parent node of the function expression against these
special kinds in order to ignore the special getter and setter constructs.

Tests for this condition were also added for the following rules:

* disallow-spaces-in-anonymous-function-expression
* disallow-spaces-in-function-expression
* disallow-spaces-in-named-function-expression
* require-spaces-in-anonymous-function-expression
* require-spaces-in-function-expression
* require-spaces-in-named-function-expression

The named function expression rules did not need to be patched
because these constructs never generate named functions.

Fixes #69
Rewrite error message again

D'oh!
Make unary/binary tests more consistent
Improve requireSpacesInsideObjectBrackets rule

"allButNested" option should not require no space in nested objects
This should be covered by "disallowSpacesInsideObjectBrackets" rule

Fixes #399
Various readme fixes

Closes gh-395
Closes gh-400
Another portion of readme fixes