(PUP-3357) generate implicit names for ssh_authorized_keys if needed

Generated resources from the user type share an empty resource name
if more than one unmanaged key has no comment in the authorized_keys
file (the comment is used for the namevar). This leads to duplicate
declaration errors when the user tries to purge those keys through
the user { purge_ssh_keys } parameter.

Make the provider use an internal pseudo-name in such cases. Generated
resources get the same respective pseudo-name for successful purging.
It is composed of the file name and a numeric index.
(PUP-3357) unit tests for the purging of multiple unnamed keys

Just makes sure that the user type and ssh_authorized_keys provider
generate pseudo-names for keys following the same pattern.