Major upgrade

I've attempted to pull in what I could from other open PRs, added tests, and made everything idempotent.  Take a look.
suggest a name with narrower scope such as "ssh_file_updater"; the resources then become "ssh_file_updater_config" and "ssh_file_updater_known_hosts". (Unless the roadmap really is to become the Swiss Army Knife for dealing with SSH within Chef. Not.)