[core] Add ability to specify IP Address for SSH, SCP and sshable?

This PR addresses issue #2584 and allows to you specify an `ssh_ip_address` that will allow you to specify the desired address for SSH, SCP, and sshable? If this value is not specified it falls back to the previous behavior of using the `public_ip_address`.

I also fixed a broken core servers test that wasn't properly verify required attributes/methods on server models.

@geemus This PR touches ever server model in fog and it's hard to test. If you could give this an extra set of eyes, it would be much appreciated.