Make noaction safe and refactor code

Code called unlink directly which meant that it was not noaction safe.
Switched to using LC::Check::absence as it supports noaction.

Tidied up the code and moved some repetetive sections to their own
functions.
Fixed unit tests

Switching unlink for LC::Check::absence exposed a long standing bug
where the unit tests were trying to delete files in /etc/cron.d but
silently failing. The module was correctly flagging up the failure via
using $self->error(...) however these errors are ignored by the unit
testing system.

LC::Check is not unit test safe so added mocked methods for
LC::Check::status and LC::Check::absence to the linux configure test.