Only manipulate the shell command for known shells.

We cannot assume the shell language is always KSH compatible.
Perform a crude check by matching the shell binary against a known list.
Perform PATH home directory expansion.

Expands ~/ components inside PATH, which is shell agnostic.
Merge pull request #32 from wavexx/check_shell

Only manipulate the shell command for known shells.
Merge pull request #34 from wavexx/expand_home_path

Perform PATH home directory expansion for user crontabs only.
Emit stable unit IDs for persistent jobs

Persistent job IDs are generated as a hash(schedule, command), so that
re-ordering of the command sequence (either in crontabs or due to filename
change) or a change in schedule with identical behavior doesn't clash on a
previously-existing unit ID.
Fix @persistent@ substitution logic.

Just handle @persistent@ as a normal boolean.
Merge pull request #33 from wavexx/unbreak_persistent

Fix @persistent@ substitution logic.
move check of RANDOM_DELAY into parse_crontab()
move check of START_HOURS_RANGE into parse_crontab()
Fix/enhance PERSISTENT

Allow PERSISTENT envvar to take yes/no/auto with the following meaning:

'yes': force all further jobs to be persistent
'auto': only recognize @ keywords to be persistent
'no': force all further jobs not to be persistent

Defaults to 'yes' in anacrontab, and 'auto' for other sources.
Merge pull request #37 from wavexx/tristate_persistent

Fix/enhance PERSISTENT
document PERISTENT= tristate in manpage
move check for boot_delay in parse_crontab()
add support for DELAY from anacrontab in crontabs too
refresh man page anacrontab
create folder crontib/ for misc stuff
sample cron-daily rollback script #12
avoid global exceptions that may hide problems
no point to instantiate OnFailure handler if MAILTO=""
stale_stamps: add fancy time shedules