added classes for redirecting output to commands

This PR provides an abstraction layer for redirecting output to shell commands.

A common use of this that I continue to encounter is where I want to receive an email of standard error.
Another use that an existing unit test implies is common is redirecting output to the logger command.
I even included a convenient way to do both, using the shell command `tee`.

If you merge this PR, I will update https://github.com/javan/whenever/wiki/Output-redirection-aka-logging-your-cron-jobs with clear instructions on how to use this new feature.  In the mean time, the test I wrote should be a pretty clear example.