(PUP-1955) Fixes to purge_ssh_keys

The new `purge_ssh_keys` parameter introduced by PR #2247 revealed two issues that were causing `puppet resource user` to throw errors:

  - The new parameter used `deafultto false` which is subtlety broken and actually causes `nil` to be used as a default value. This was causing an exception during `empty?` checks.

  - The new `eval_generate` method was returning `nil` when purging was switched off. This was confusing later code paths that expect an empty array.