Issue #1311: Support destructuring function parameters

This patch adds support for following destructuring function parameters:
  * toplevel array: ([a, b])
  * elision in array: ([a, , b])
  * parenthesis: ([a, (b)])