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%
```
And maybe reduce this number? On my laptop there is only one cycle of benchmark and I think that this is not very reliable to compare one sample. Also, I think that TarUntar complexion is linear func from number of files, you can see that if you'll write `BenchmarkTarUntar10` and `BenchmarkTarUntar100`. And I believe that 10 files will be enough, perhaps 10 and 100 benches to be sure that complexity is still linear.