Ansible: Support multiple private keys

Note that this feature requires to force `--connection=ssh`. This is not
a big deal as `paramiko` mode is deprecated and in most cases `smart`
mode enables `ssh` mode.
Ansible: Support SSH-Forwarding

Credits: Problem was originally reported in
https://github.com/mitchellh/vagrant/commit/dba02f35267ee90b540b0351ddb3fafa16608db8
by @picsolvebryan
Ansible: force 'ssh' connection only when needed

Remain in 'smart' mode, unless Multiple SSH identities or SSH-Forwarding
are in use.
Ansible: Refactor handling of SSH vars/attributes

Avoid repetitions by using (sometimes lazy loaded) instance attributes
Merge pull request #2952 from gildegoma/ansible-ssh-fixes

provisioner/ansible: Support SSH-Forwarding and Multiple SSH Private Keys