(PUP-3357) purge unnamed ssh keys

There was a regression when a user tried to purge `ssh_authorized_keys` resources (through `user` resources), more than one of which had no comment in the `authorized_keys` file. Puppet would generate resources with a name of `""` and those would clash as multiple declarations.

Generate implicit names for such keys, used by both the `user` type and `ssh_authorized_keys` provider. They are not truly unique, but follow a distinct pattern that makes collision less likely.
name_index could be local to `self.prefetch_hooks` (just as index is in the `unknown_keys_in_file` method below. I think.