Refactor ANGLE's extensions struct to more easily represent multiple vendor extension Some extensions are available from multiple vendors with the same name, while minimizing the amount of duplicated code and validation errors. The anonymous struct allows individual vendor checks as well as an "*Any()" check to check for any version of the extension. Bug: angleproject:3104 Change-Id: Ib8b65cde850462d3746d9663496a595321817514 Reviewed-on: https://chromium-review.googlesource.com/c/1456619 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>