[RFC] GA_APPEND() and GA_APPEND_VIA_PTR()

Using `GA_APPEND` is easier than:

```c
ga_grow(&ga, 1);
((item_type *)ga.ga_data)[ga.ga_len] = item;
++ga.ga_len;
```

`GA_APPEND_VIA_PTR` is used to replace this common pattern:

```c
ga_grow(&ga, 1);
item_type *p = ((item_type *)ga.ga_data)[ga.ga_len];
p->field1 = v1;
p->field2 = v2;
ga.ga_len++;
```