Add key-value mappers for improved safety.

This allows strings to be embedded into the config, which get mapped to a
specific value when the config is read. Also add string to integer mappings
for the API enforcement policy.

Doing this improves safety, as there are no brittle integer values to be
kepy in sync across mutliple SDK versions, and between the tools that
generate the config and the device. Relying on integer values runs the risk
of an unintended policy being applied at runtime. The main risk now is of
just generating invalid config which is rejected on the device.

Also fix some niggles with null JSON values while we're here.

Bug: 110509075
Test: atest SignedConfigTest
Change-Id: Iec689c42066d60ca569805bc260ddd0b05890da3
3 files changed