be able to set both private key (identity_file) and public key (public_identity_file)

we weren't handling this before so were passing the private_key to fog.
I think it was only working because ssh agent was the fall back and it was somehow providing the correct public key.
Both password and key based authentication should now be more reliable

This also includes Chris L's image work.