Fixed zip files not being closed when error occured

ZipFiles would not get closed properly when the zip file did not contain
the specified innerPath.
Moved identifyOS() method to OS enum