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.

I also included a separate commit that removes a bunch of now unused complexities from the code that shells out to tar.