speed up archive

This PR speeds up archive and lowers the amount of allocated memory by allocating buffer memory for io.Copy operations. This lowers the GC churn during context upload, commit, pull, push, ADD, export, import, load and save.

The PR also adds a benchmark for TarUntar.
```
benchmark             old ns/op      new ns/op      delta       
BenchmarkTarUntar     9248497406     6671318507     -27.87%     

benchmark             old allocs     new allocs     delta      
BenchmarkTarUntar     11757110       11561722       -1.66%     

benchmark             old bytes      new bytes     delta       
BenchmarkTarUntar     6964905904     412317168     -94.08%
```
It's irrelevant for this particular benchmark. Its main goal is to ensure we no longer allocate as much memory when reading tarballs and when writing them.