(PUP-1174) Use Puppet::Util.absolute_path? to validate purge_ssh_keys

Previously, the `purge_ssh_keys` parameter was validated as either starting
with '/', '~' or '%h', but the first one is not a valid absolute path on
Windows.

This commit uses the Puppet::Util.absolute_path? to check for absoluteness.
Also updates the spec tests to be specific about the type of exception and
message that they expect. And in cases where we don't expect an exception, we
don't need to expect { .. }.to_not raise_error, since rspec will fail any
test that does raise.

Paired-with: Charlie Sharpsteen <chuck@puppetlabs.com>