Don't shell out to tar for ExportChanges

This changes ExportChanges to use the go tar support so we can
directly create tar layer files. This has several advantages:

* We don't have to create the whiteout files on disk to get them
  added to the layer

* We can later guarantee specific features (such as xattrs) being
  supported by the tar implementation.

Docker-DCO-1.1-Signed-off-by: Alexander Larsson <alexl@redhat.com> (github: alexlarsson)
archive: Extract createTarFile() from ApplyLayer

This way we can reuse it for Untar()

Docker-DCO-1.1-Signed-off-by: Alexander Larsson <alexl@redhat.com> (github: alexlarsson)
Implement UnTar via archive/tar

This replaces the shelling out to tar with a reimplementation of untar
based on the archive/tar code and the pre-existing code from ApplyLayer
to create real files from tar headers.

Docker-DCO-1.1-Signed-off-by: Alexander Larsson <alexl@redhat.com> (github: alexlarsson)
Fix cross compile

stat.Rdev and time.* is 32bit on OSX, which breaks cross builds with eg:
cannot use stat.Rdev (type int32) as type uint64 in function argument

We fix this with an extra conversion to uint64.

Docker-DCO-1.1-Signed-off-by: Alexander Larsson <alexl@redhat.com> (github: alexlarsson)
refactor, remove useless buffers

Docker-DCO-1.1-Signed-off-by: Victor Vieux <victor.vieux@docker.com> (github: vieux)
Fix Travis for PRs against non-master (like release, for example)

Docker-DCO-1.1-Signed-off-by: Andrew Page <admwiggin@gmail.com> (github: tianon)
Fixes Issue# 3450
Docker-DCO-1.1-Signed-off-by: Gopikannan Venugopalsamy <gopikannan.venugopalsamy@gmail.com> (github: vgeta)
Add MAINTAINER and remove docker/utils dep from pkg/sysinfo

Docker-DCO-1.1-Signed-off-by: Guillaume J. Charmes <guillaume.charmes@docker.com> (github: creack)
Merge pull request #3652 from tianon/fix-travis-on-non-master-prs

Fix Travis for PRs against non-master (like release, for example)
Update Travis to also test compiling the docs

Docker-DCO-1.1-Signed-off-by: Andrew Page <admwiggin@gmail.com> (github: tianon)
Merge pull request #3656 from tianon/travis-test-docs

Update Travis to also test compiling the docs
Merge pull request #3649 from vieux/remove_buffers

refactor, remove useless buffers
Merge pull request #3678 from creack/sysinfo_update

Add MAINTAINER and remove docker/utils dep from pkg/sysinfo
Merge pull request #3295 from alexlarsson/implement-untar

Implement UnTar via archive/tar
Extract mount into pkg.

Mount is self contained and generic, it should be in pkg, to allow other pkg modules to use it.

Docker-DCO-1.1-Signed-off-by: Paul Nasrat <pnasrat@gmail.com> (github: pnasrat)
Merge pull request #3680 from pnasrat/extract-mount-pkg

Extract mount into pkg.
Merge pull request #3292 from alexlarsson/export-changes-manual

Don't shell out to tar for ExportChanges
Merge pull request #3665 from vgeta/3450-fix

Fixes Issue #3450