Put A/B/R logic in a separate libabr

Adds a libabr library to host Fuchsia A/B/R logic without the gbl
dependencies. This will be the first candidate for code share with
Fuchsia and will be replacing the Fuchsia libabr C library. libgbl may
also use the library to ensure backward compatibility for existing
devices that use the original libabr.

The library is mostly a line to line translation, including code
comments, from the Fuchsia C libabr. This makes sure that we are keeping
all subtle considerations and bug fixes that we have accumulated over
the past.

The library provides a C static library build target that exports the
same C interfaces as C libabr. It currently passes all upstream tests
in "src/firmware/lib/abr/test/libabr_test.cc". The only exceptions are
the `read/write_abr_metadata_custom` usage which we'll deprecate since
atlas is no longer relevant.

Bug: 336318818

Change-Id: Ifa179ef6cd50a887dacefd8b92ac790918d34fe0
6 files changed
tree: 1d31309953278665c00565cfae14d86c99bc14ba
  1. gbl/
  2. libxbc/
  3. vts/
  4. .gitignore
  5. BUILD
  6. LICENSE
  7. OWNERS