Modernized DBLock and related classes to use List rather than Vector

These classes never relied on the internal synchronization provided by
Vector in the first place, and we have more flexibility when using List,
as we can get Collections.unmodifiableList(), etc., if we want.