Backup archive.py state module from 2016.3
The newer version of this module will prefer to use the unzip command instead of the python zipfile module for unzipping. This works around https://bugs.python.org/issue15795, namely a bug where the zipfile module does not respect permissions. This will fix our Android toolchain `archive.extracted` states. Note that this version of the module does not include saltstack/salt#36552, so keep the `archive_user` argument to `archive.extracted` states. `archive.extracted` sets ownership only on the `if_missing` path, so ensure Salt sets ownership on all the extracted files by unsetting `if_missing`, which defaults to `name`. This now refers to the top level extracted directory, so all extracted files will be properly owned by `servo/servo`, which ensures we are able to run the `android` command as the `servo` user to download the platform and build tools in the `cmd.run` state. Because the `unzip` binary will be used to extract the zip files, require the `android-dependencies` `pkg.installed` state from `archive.extracted` states that extract zip archives to ensure that the `unzip` binary is available.