[Fuchsia] Import gn-sdk from flutter/engine

This change imports some missing features from
https://github.com/flutter/engine/tree/main/tools/fuchsia/gn-sdk
so that flutter can use the same gn-sdk rather than maintaining a
different copy.
Note, the gn-sdk in flutter does not support idk version which can be
addressed by https://github.com/flutter/engine/pull/50855 and its
follow-up changes.

Beside the missing features, it also improves the compatibility of
the gn-sdk to
1) allow customized gn_configs.gni instead of a hard-coded location.
2) handle several edge cases, like duplicated 'meta/' or '.cml', and missing folders.

The change itself should be transparent to chromium, newly added
features won't be enabled without explicitly using the relevant
parameters or gn arguments.

Bug: https://github.com/flutter/flutter/issues/140179
Change-Id: I5b27f286de5abd877ce81404759b179a2743b426
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5315612
Reviewed-by: David Song <wintermelons@google.com>
Commit-Queue: Zijie He <zijiehe@google.com>
Cr-Commit-Position: refs/heads/main@{#1264668}
NOKEYCHECK=True
GitOrigin-RevId: c1311e0bcf66c8a3ca8bffa73d851b5af030787b
14 files changed
tree: 73d152b81bb4b160292ea07ca988b212d054c0bc
  1. src/
  2. DIR_METADATA
  3. LICENSE
  4. OWNERS
  5. README.chromium