Do not assume JSON block when mapping array

If the following code snippet is the first line of a program, JSHint
incorrectly assumes it is JSON when doing array destructuring checks:

```
['foo', 'bar', 'baz'].forEach(function(name) {
  console.log(name);
});
```

Fixes #1446
Support ES6 `export * from ...` syntax

Closes #1717
Forbid fat-arrow syntax when `moz` flag is used
Parse grouped ES6 fat-arrow expressions

Previously, grouped fat-arrow expressions ( () => assignmentExpr ) would yield an error. Now, they
are parsed correctly. This CL also adds some additional fat-arrow test cases which demonstrate
returning an object literal in concise function syntax.

Fixes #1692