idl_parser: Support annotated types in Typedef and NonAnyType

This CL's intention is to adjust to the change of WebIDL's specifications.

This CL enables types to be annotated types in Typedef and NonAnyType.

In order to check if ASTs are dumped correctly and if the code generator works correctly, I also added pattern match based tests and code generator's tests.

Bug: 714866
Change-Id: I3f04365eca44a646a92796028479744d9bd4dce8
Reviewed-on: https://chromium-review.googlesource.com/668353
Commit-Queue: Lisa Suzuki <lisabelle@google.com>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Yuki Shiino <yukishiino@chromium.org>
Reviewed-by: Kenichi Ishibashi <bashi@chromium.org>
Reviewed-by: Hitoshi Yoshida <peria@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#502815}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 16b6872f38d70af4103b23cd54b3ef8c7697b341
4 files changed