(PUP-1955) Use symbols not booleans in purge_ssh_keys

Unfortunately, `defaultto false` is somewhat broken: a parameter default of
`false` is cast to `nil` (PUP-1955). This patch alters the boolean
representation of the User Type parameter `purge_ssh_keys` to use Symbols
instead of booleans as `deafaultto :false` works correctly.

Also added some logic to convert boolean values (`true`) and string values
(`"true"`) to symbols during munging. Both of these cases can occur depending
on whether a quoted string or bare word is used to define a parameter in the
Puppet manifest.
(PUP-1955) Generate an empty array when purge_ssh_keys is false

This patch modifies the `eval_generate` method of the User type to return an
empty array if the `purge_ssh_keys` parameter is switched off. Previously a
`nil` was returned which caused an exception during catalog application.
Merge pull request #2449 from Sharpie/PUP-1955-fix-ssh-purge

(PUP-1955) Fixes to purge_ssh_keys