Bring over ground work for linux port (headers etc)

Will implement libarchive unpacking and packing of directory though