simple_array: critical bug fixes

There were two squashed bugs:
1. a realloc() now initializes to zeroes
2. sa_ensure_length() had a logical flaw which has been corrected

In looking to address (1), I found (2). Incremental enlargements
of the array would not trigger this, but if new length was greater
than a factor of 2-ish (SA_GROW_BY_FACTOR) then the realloc()
would be too small.