properly keep the reference around so that it doesn't
get deallocated while libarchive is still using it.
callback fixups
be a little less repititious
pass in archive as first argument to callback