v0.2: Make iterators less fragile.
Instead of storing a pointer to the argdata_t, which stores the pointers to the underlying data, store the pointers to the underlying data in the iterator directly. This way, the iterator still works when the argdata_t is gone, but the data still exists.