Better error messages for zlib errors

Most of the zlib inflater errors had a really descriptive name like
"data error," but more descriptive errors are put into the "msg" field
of the z_stream structure. Use that for error messages instead so we get
the underlying cause of the data error.

Additionally split out the code for ZipUtilities from the header into a
separate source file so things using NativeZipStream don't have to
forward declare.

Change-Id: Ifc12645b37f7aabc700e6a0766dee55b4c3609a0