archive: preserve hardlinks in Tar and Untar

```
benchmark             old ns/op     new ns/op     delta
BenchmarkTarUntar     5662243       5615513       -0.83%

benchmark             old MB/s     new MB/s     speedup
BenchmarkTarUntar     0.07         0.07         1.00x

benchmark             old allocs     new allocs     delta
BenchmarkTarUntar     10815          10815          +0.00%

benchmark             old bytes     new bytes     delta
BenchmarkTarUntar     520637        520216        -0.08%
```

ping @unclejack 

Signed-off-by: Vincent Batts <vbatts@redhat.com>
@LK4D4 are you saying the function needs to be a pointer receiver? (`func (ta *tarAppender)...`)