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%
```
Here we have inconsistency in benchmark, first iteration doesn't create target and all next creates. May be we should use not target dir itself, but some dir in it. Also it seems that we count time and allocations from this RemoveAll call.