Fix three issues in archive.extracted state
Fix three issues in archive.extracted state

1. The trim_output argument was ignored for archives extracted using
   tarfile.

2. file.get_source_sum would fail if "source" is a list

3. The checksum was being updated before we checked to see if it
   matched, effectively keeping us from detecting changes to the hash.

4. When source_hash_update is True, and the archive is extracted, and
   files are later removed from the extraction dir, the state would not
   re-extract the archive unless the source_hash had changed.

saltstack/salt,saltstack/salt,saltstack/salt,saltstack/salt,saltstack/salt