build: Update jscs and jshint config

jshint:
* Update to grunt-contrib-jshint v0.10.0 (jshint v2.5.0).
* Remove coding style option "curly" (already covered by jscs).
* Remove coding style option "noempty" (already covered by jscs).
* Remove option "regexp".
* Enable new option "freeze" (prohibits changing native prototypes).
  http://www.jshint.com/blog/new-in-jshint-oct-2013/#option-freeze
* Re-order to match http://www.jshint.com/docs/options/

jscs:
* Update to grunt-contrib-jshint v0.4.2 (jscs v1.4.0).
* Format .jscsrc file in a more spacious way and order the
  properties less arbitrarily (using the jscs's readme order).
* Enforce more details of our coding style
* Remove rules
  - requireSpacesInFunctionExpression: Remove, this is already
    covered by requireSpaceAfterKeywords and requireSpaceBeforeBlockStatements,
    which enforce:

    x.noop = function () {};
    x.Foo = function Foo() {};

  - disallowRightStickedOperators: Remove, this is obsolete with
    requireSpace{Before,After}BinaryOperators and fixes a bug
    where the following would be considered invalid when it shouldn't:

    +!!constructor.static.matchFunction
    // Operator + should not stick to following expression

    This is a false positive due to the tricky nature of
    disallowRightStickedOperators and for that reason this rule
    has been deprecated and scheduled for removal in jscs 2.0.0

See also If46b94ce18a7084cf and Ib731f11b1184d in oojs/core.

Change-Id: Iccf3b461b8d01023dd698771183b0ad5816993b1