Make sure that the right ssh public key is saved in the node info

The old way of saving the node public key relied on a notification, and
so only happened the very first time, when the ssh key was created. If,
for any reason, this went wrong, then there was no way to get it fixed.

Instead, on each chef-client run, we check if the node info contains the
right data, and if not, we save it.

(cherry picked from commit b5b7899f50f93273671886f67151615be365b209)
Recreate ssh keys if we somehow lost the private key

(cherry picked from commit 2af4b2ff987e42e49b9d7925ca81fda812e96121)
Only read ssh public key if file exists

(cherry picked from commit 353ad5caf8d058a3ccd31edd306f3fbe08297953)
Merge pull request #320 from vuntz/ensure-ssh-key

Make sure that the right ssh public key is saved in the node info