Previously we stored two APInts for KnownBits. This information is
only ever used to create AssertZExts using the number of known
leading zeros. It's inefficient to store this information in APInt
form.
This patch switches the storage to store the number of leading zeros.
I've also removed the IsValid flag and now rely on default constructing
with the safest values and reseting to the safe values when we need
to invalidate. The IsValid flag was inconsistently used before.
We could default construct entries in LiveRegOut with IsValid=true and
BitWidth=1 instead of default constructing as IsValid=false.
clang-format not found in user’s local PATH; not linting file.