bootdata: Remove bootdata and replace with zbi.

The old "bootdata" format has been deprecated for almost three
years in favour of the Zircon Boot Image format, which is a very similar
format but not quite identical.

The bulk of this CL is syncing the bootdata/ZBI implementation with
upstream Fuchsia, and importing a new libzbi[0], a library intended
for use in firmware to simplify ZBI manipulation. This library replaces
all of the custom bootdata manipulation that previously existed (i.e.
add_bootdata).

This CL also changes depthcharge from passing BOOTDATA_DEBUG_UART (which
is no longer functional in upstream Fuchsia) to the newer ZBI_TYPE_KERNEL_DRIVER
type.

[0]:
https://fuchsia.googlesource.com/fuchsia/+/refs/heads/master/src/firmware/lib/zbi/

Test: emerge-atlas depthcharge
Test: Manually compare ZBI items passed by depthcharge to Zircon before and after.
Bug: fuchsia:74793
Change-Id: Ifd2e39d7881f91c391786c5c99da34294c04b049
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/depthcharge/+/2833501
Reviewed-by: Duncan Laurie <dlaurie@google.com>
Tested-by: Simon Shields <simonshields@google.com>
Commit-Queue: Simon Shields <simonshields@google.com>
55 files changed