Unit tests should verify length of iterator ouput
Reconcile iterator type across library

- Defines single opaque, iterator type across API
- Change ABI for qfs_readdir, qfs_readdirnames,
  qfs_get_data_locations/qfs_get_data_locations_fd
- Use forward declared struct for iterator
- Internalizes iterator struct deifinitions
- Update unit tests