Reading user crontab on unix as that user

Crontab on Solaris and Illumos systems with auditing enabled
audits root attempts to read non-root user crontabs. If chef-client
runs without an auditing context (as happens by default when running
in SMF), these crontab calls will fails with exit status 1.

By switching to the non-root user first (which somehow does not
require auditing), we should be able to read user crontabs without
an auditing context.
Unix cron provider uses shell_out

- update unix_spec to more modern RSpec syntax
- both #read_crontab and #write_crontab use shell_out
Log output of crontab -l when non-zero exit status

When reading a unix crontab and we receive a non-zero exit status,
log the stdout and stderr to debug.

We expect exit status 1 to happen when the user does not have a
crontab, but let's log anyways for help in troubleshooting unexpected
situations.
Merge pull request #2107 from livinginthepast/unix-crontab-read-failure

Reading crontab of non-root unix user should read as that user