Fix external archive compression

We were seeing two test failures:
- encoding error in TarWriter;
- 'PG::Error result was cleared'.

The first is solved with an IO.new. The second error seems to have to do
with forking; this change rewrites Repository#create_archive to not to
have to fork the Ruby (Unicorn) process.
Merge branch 'fix_external_archive_compression' into 'master'

Fix external archive compression

See merge request !11
Version bump

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Create archives using git-archive

This change is motivated by issues in the Zip and Tarwriter
implementations causing the the same Git repository at the same revision
to produce archives with different checksums depending on the time you
create the archive.

This implementation is based on the Grit::Git::Repo#archive_to_file
method we added to the gitlab-grit gem in the past.
Merge branch 'use-git-archive' into 'master'

Create archives using git-archive

This change is motivated by issues in the Zip and Tarwriter
implementations causing the the same Git repository at the same revision
to produce archives with different checksums depending on the time you
create the archive.

This implementation is based on the Grit::Git::Repo#archive_to_file
method we added to the gitlab-grit gem in the past.

See merge request !8
Merge branch 'master' of gitlab.com:gitlab-org/gitlab_git