Revert "Revert "Use libziparchive for dalvik zip processing.""

This reverts commit 52dacd58ac8735ffdcd6bbe952586a38ad70e6a5.
Merge "Revert "Revert "Use libziparchive for dalvik zip processing."""
Fix a few bugs introduced by the move to zip_archive.

- mmap failures because the output file was opened with
  O_WRONLY instead of O_RDWR

- In two instances, we were passing the wrong handle
  to CloseArchive(ZipArchiveHandle). The issue is code
  like this:

  ZipArchiveHandle h;
  OpenArchive(&h);
  CloseArchive(&h);

  This compiles, but isn't correct. ZipArchiveHandle is
  a typedef for (void *) and the compiler won't complain
  because void** is also void*. Some of this code was written
  before the API was changed from CloseArchive(ZipArchiveHandle&)
  to CloseArchie(ZipArchiveHandle) but continued to compile
  even after the API change. I'll change the API in the follow up
  to catch errors like this at compile time.

bug: 12173498
bug: 12176258
bug: 12178641

Change-Id: I71ac36654311f582b5ab633e1ed0d13e00053c84
Merge "Fix a few bugs introduced by the move to zip_archive."
Fix libutils dependencies for dexdump & dexlist (again).

We managed to get into a bad state because the change that
fixed dependencies on dalvik-dev was cherry-picked on to
master-aosp and then the change that needed this was
reverted.

Git got confused as a result.

Change-Id: Idef607a676cff85d00e95a94a9be09d791b2fa96
Merge "Fix libutils dependencies for dexdump & dexlist (again)."
Merge branch 'master' of https://android.googlesource.com/platform/dalvik into HEAD