common: replace some vector implementations with generic list
Not only does this improve type safety (reduction in instances of dealing with
void *), it removes some unchecked allocation failures (malloc and realloc
results unchecked).
Not only does this improve type safety (reduction in instances of dealing with
void *), it removes some unchecked allocation failures (malloc and realloc
results unchecked).