Switch from counters to command hashes

Use a combination of the command schedule and command string to compute a
stable unique command ID.

This improves the timestamp scheduling issues which could resulby by
re-ordering the crontab file.

Fixes duplicate schedules as a result.

Also fixes [ -x/-f/-r ] existence tests (you're checking against the full command string, not the actual file).
On 11/05/2014 11:40 AM, Alexandre Detiste wrote:
>>      with open(filename, 'r') as f:
>>          for line in f.readlines():
>> -            if line.startswith('#'):
>> +            line = line.strip()
>> +            if not line or line.startswith('#'):
> 
> this is right ! commited in https://github.com/systemd-cron/systemd-cron/commit/1bacbd51f9dbee45a9d237446f52e05ac8ac0399

Yes, I was looking at the crontab manpage, and leading/trailing
whitespace should be both ignored.