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.
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
Merge pull request #4190 from UtahDave/fix_core.py

ips is a list, not a string
Fix #4187

The hashable type check was running but not breaking the loop
Remove rogue print statement
- Adding tomcat state
- extending tomcat module to use the manager webapp
Merge pull request #4191 from ranl/develop

tomcat module and state
Fix virtual function return from #4191
Add docs to libvirt state
Add libvirt to the index
Add libvirt docs to the doc index
Start on 0.14.0 release notes