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.
Recreate ssh keys if we somehow lost the private key
Only read ssh public key if file exists
Merge pull request #319 from vuntz/ensure-ssh-key-stoney

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