Revise hardlink handling.

Allow the code to handle hardlinks to non-regular files correctly.

Track whether the file content has already been dumped to the snapshot.
Stop relying on tn_dirent_hint, which is not guaranteed to be set at all.
This change also allows us to rely on the behaviour that the file &
content is always before the zero-sized hardlinks to resolve ambiguities
during the streaming read of a snapshot.

with input from and ok pedro@