Reimplemented 'latest_version()' to fix #12663 and make it more readable + better debug-able.
Modified skip flag logic to skip instead of filter.
Defaulted skipPresent to false, since it causes legitimate patches to be missed.
Fixed output of install_updates.
Fixed misc. code problems.
Working salt-ssh test runner

This rounds out initial (alpha) support for a salt-ssh test runner.

At present, one must manually specify the --ssh flag to ensure that
the ssh deamons are spun up properly.

Conflicts:
	tests/integration/__init__.py
	tests/integration/files/conf/_ssh/sshd_config
	tests/integration/files/conf/sshd_config
	tests/integration/files/ext-conf/sshd_config
Generate server keys too
Set this back to the original value. (Fixes salt-ssh bug)
Pass -i to salt-ssh
Pylint
Now we don't need root anymore
Clean up sshd config.

Remove hostkeys that are now dymaically generated per-run.

No more usepam
More Pylint
pass in data type check_libcloud_version expects
remove extra paren
namespace get_node
use simple_types_filter for the openstack node object
Merge pull request #13016 from gtmanfred/openstack

add get_node to the openstack driver namespace
Merge pull request #12714 from cachedout/ssh_test_runner

Working salt-ssh test runner
Add document for aliyun provider
Forget to submit these files for aliyun documents
Merge pull request #13017 from crook/aliyun

Add document for aliyun provider
fix for #12947

remove zk_hosts from unlock, since we already fail if we don't have the lease.
Also, adding logic into the semaphore class when it is not ephemeral to load its own previous lease (to avoid deadlocks)