internal/charmstore: add ZipFileReader and NewZipFile

These are the methods we'll use to create the Content on entities.
I know you don't strictly need to, but I would put `zf.Compressed = false` here to make it clear it doesn't run into the next case.