Replace SLocEntryLoaded (a bitmap) with a vector of optional indices
into LoadedSLocEntryTable called LoadedSLocEntryIndices, and
allocate an SLocEntry in LoadedSLocEntryTable only once it has been
loaded. The optional index is stored using the new class
LoadedSLocEntryIndex, which has similar semantics to an
Optional<unsigned> without storage overhead. It uses 0 as a sentinel
to allow zero-initialization when loading a new module and stores the
index (if present) off-by-one.
This makes the allocation for an unloaded SLocEntry 6x smaller (24B =>
4B), dramatically improving memory usage with large / many modules. It
increases memory usage for a *loaded* SLocEntry by 4B (24B => 28B).
We can probably remove the bitvector header include.