Add type annotations for ArrayPatterns and ObjectPatterns.

See the test for examples.

Should I initialize the typeAnnotation to `null` or `undefined` for all ObjectPatterns and ArrayPatterns? I didn't initially since it was a pain to update all the test cases (is there any good way to re-record a whole test fixture? All I found was  tools/generate-test-fixture.js
Support for `var [x]: string[] = [ "hello" ];` too, right?