Before, arrays of small elements received a starting allocation size of 8, not 16.
This allows the caller to return directly on such an error, with an appropriate errno value.
This is intended as a type-safe alternative to obstacks and hand-written realloc constructs. The implementation avoids writing function pointers to the heap.