Fix invalid result of findXxxxToken methods when value is provided

When value and type both provided to the "JsFile.findNextToken" method, it will
return the first token matching the type without checking the value because of
the "prevToken.type !== type" condition.

The same applies to both "JsFile.findNextToken" and "JsFile.findPrevToken"

Close gh-645
New rule: (require|disallow)SpacesInCallExpression

Closes gh-650
Fixes #644
Implement "except" option for spaces rule

Rule: requireSpacesInsideParentheses
Simplify "allButNested" option for spaces rule

Rule: requireSpacesInsideParentheses
Add more tests for spaces in parens rule

Also fix up newlines
Add "getNodeByRange" method
Correctly deal with entity that look like array

Rule: requireSpacesInsideParentheses
Implement "only" for parens rule

Rule: disallowSpacesInsideParentheses

Closes #562
Closes #517
Closes #92
getNodeByRange should check only range objects
Structurize tests for js-file module a bit
iterateTokenByValue - iterate only on own props
Remove needless newlines
Optimize "getNodeByRange" method

Don't go down more it needs to
Fix code style issues
New rules: (require|disallow)CapitalizedComments

Closes gh-653
Fixes #647