[entropy.client] atom_match: rewrite cache key generation code

We now rely on SHA1 rather than hash() and string magic, which is
likely to give us a lot more collisions.
[eit.commands.command] call shutdown() before releasing locks

shutdown() calls EntropyCacher.sync() and stop()...
[solo.commands.command] call shutdown() before releasing locks

shutdown() calls EntropyCacher.sync() and stop()...
[entropy.client] atom_search: rewrite cache key generation code

We now rely on SHA1 rather than hash() and string magic, which is
likely to give us a lot more collisions.
[entropy.client] tentatively remove __validate_atom_match_cache()

Now that we rely on a better hashing algorithm, with bigger hash
values, it might be interesting to see if __validate_atom_match_cache()
is still needed.
[entropy.client] _generate_reverse_dependency_tree: rewrite cache key generation code

We now rely on SHA1 rather than hash() and string magic, which is
likely to give us a lot more collisions.
[entropy.client] check_package_update: rewrite cache key generation code

We now rely on SHA1 rather than hash() and string magic, which is
likely to give us a lot more collisions.
[entropy.db] drop strings= keyword arg from checksum()

This is no longer in use.
[entropy.security] drop hash() usage through the module

Replace hash() usage with SHA1 for improved reliability.