Allow destructuring pattern in arrow functions passed as arguments or on LHS

It didn't work for arrow functions on the rhs or passed as argument. I.e. the following constructs threw a syntax error:

```
var x = ([a, b]) => 42;
foo(([a, b]) => 42);
```

Since arrow functions are usually used as argument for other functions, destructuring in arrow functions was useless so far.
Is it OK that the error message changes? Or do we want to preserve the original message somehow?