Refactor archives to support creating archives.

Archive class used StrictJarFile, which only supports reading.
This CL makes Archive a base class which is going to have two
subclasses: ReadableArchive (current Archive) and WriteableArchive.

ReadableArchive will be used to open archives with StrictJarFile.
WriteableArchive will be used to create archives with ZipOutputStream.

Test: Unit tests.
Bug: 20822019
Change-Id: I40174c8d970bc3098929854231622e3006f6263e
8 files changed