Rename pkg.available_version to pkg.latest_version

See https://github.com/saltstack/salt/issues/4163#issuecomment-15211619

All refs have been updated, and each pkg provider now has
available_version as a function reference pointing to latest_version.

Sphinx docs also updated so that the available_version function
reference is hidden in the docs.
Update ubuntu documentation

add-apt-repository is not always present by default on Ubuntu systems. Updated the installation doc accordingly.
Fix file.diretory test=True #3858
Merge pull request #4183 from terminalmage/latest_version

Rename pkg.available_version to pkg.latest_version
Merge pull request #4184 from h3/patch-1

Update ubuntu documentation
Minor edits from #4184

@h3, thanks for the docs update, we greatly appreciate it! I just
changed the tense (we try to keep the docs third person - I know,
it still needs work). Keep it comming!
Add initial checks for wheel token auth per #4179
Fix #4179

Wheel can now acept tokens
Fix #4180
Avoid tracebacks in certain caching edge cases

This fixes #4174.

When salt tries to cache a file and its cache destination already exists
(and is a directory), recursively remove the directory before caching
the file.

Inversely, when salt tries to cache a file/directory and a directory in
the cachedir that salt is trying to create exists (and is a file),
remove the cached file first before attempting to create the directory.

Also, made PEP8 fixes to keep pylint happy.
Add missing docstring examples in pkg_resource
Merge pull request #4185 from terminalmage/issue4174

Avoid tracebacks in certain caching edge cases
Fixed formatting in doc/topics/tests/index.rst
Merge pull request #4186 from zsimic/develop

Fixed formatting in doc/topics/tests/index.rst
Fix issue where present_optgroups could break user state
Don't prompt user for auth credentials if token is already loaded

The token could come from reading ~/.salt_token, for example.
Merge pull request #4188 from whiteinge/salt-cli-token

Don't prompt user for auth credentials if token is already loaded
Assign ips first.

This was broken on Windows since ips was referenced in the return
but was never created
Merge pull request #4189 from UtahDave/fix_core.py

Assign ips first.
ips is a list, not a string