Make arrow function bodies not always strict

This changed in draft 19.

https://code.google.com/p/esprima/issues/detail?id=472
Fix arrow function parameter strictness

Per ES6 Draft 21, section 14.2:

  ArrowFormalParameters:
    ( StrictFormalParameters )

Per 14.1.1:

  StrictFormalParameters : FormalParameters
    It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements.

  FormalParameters : FormalParameterList
    It is a Syntax Error if IsSimpleParameterList of FormalParameterList is false and BoundNames of FormalParameterList contains any duplicate elements.
    It is a Syntax Error if IsSimpleParameterList of FormalParameterList is false and BoundNames of FormalParameterList contains either ′′eval′′ or ′′arguments′′.

https://code.google.com/p/esprima/issues/detail?id=472
Allow eval and arguments in non-strict mode when IsSimpleParameterList is false

@awbjs is removing this rule from 14.1.1 FormalParameters : FormalParameterList (draft 21):

  It is a Syntax Error if IsSimpleParameterList of FormalParameterList is false and BoundNames of FormalParameterList contains either ′′eval′′ or ′′arguments′′.

https://twitter.com/awbjs/status/401016388279480320

https://code.google.com/p/esprima/issues/detail?id=472