Migrate from ints to Strings so we can pass codenames. Otherwise we
can't use these attributes representing a release in progress until that
release is finalized. I.e. if release T is in progress, we don't get the
correct behaviour if we use "T" in those attributes.
Also added some more tests which found some edge cases that weren't
properly handled: tests for when the shared libraries are first removed
from bootclasspath and moved to a module and then added again to the
bootclasspath via a mainline update;
In turn those tests found a bug where we would apply the logic for
onBootclasspathBefore X on devices before X which is not required.
Bug: 191978330
Test: atest
com.android.server.pm.parsing.library.ApexSharedLibraryUpdaterTest
com.android.server.systemconfig.SystemConfigTest
Change-Id: I85a3287422877a95394153b575ae422745fda27d