pkg/tarheader: support hard links when building tar headers

This introduces an inode "cache" that can be used when populating a tar
header (pkg/tarheader.Populate), so that any inodes already seen can be
linked to instead of inserting an entire copy of the file into the tar.
pkg/tarheader: cast inode up to uint64

Some systems (FreeBSD included) have uint32 as syscall.Stat_t.Ino