Update to tomcat.py

-Added "force" (default false) option commensurate with force option in salt.modules.tomcat.deploy_war to allow forced deployment of a .war even if the version strings match.  
-Forced successful deploy comment to be a string instead of dict to compensate for https://github.com/saltstack/salt/issues/12840
Update tomcat.py
12839: Install specified version of gem if another version is already installed
file.directory: fix cleaning directory symlinks

With a file.directory state, using the 'clean' directive, some symlinks
could not be removed, raising exception:
  OSError: Cannot call rmtree on a symbolic link

The reason is that valid symlinks for directories are returned
by 'os.walk' as directories.

This commit checks if directories are, in fact, symlinks, and treats them
as simple files.
commiting change to ec2.py, added placement group support
Truncate id hash to 10 chars

This helps avoid the sock path being longer than the max length allowed
by the kernel. See the following comment for more information:

https://github.com/saltstack/salt/issues/12172#issuecomment-43903643
Merge pull request #12969 from terminalmage/issue12172

Truncate id hash to 10 chars
Merge pull request #12944 from samhitov/gem-installed-version

12839: Install specified version of gem if another version is already installed
Add test for sock path length
Ensure this test is run as root
Merge pull request #12971 from terminalmage/issue12172

Add test for #12172
Wider detection of loopback interfaces

Refs #12811

Conflicts:
	salt/utils/network.py

Wrap in list
Minor rST indentatation fixes to the Windows install docs
Merge pull request #12973 from whiteinge/doc-windows-install

Minor rST indentatation fixes to the Windows install docs
Don't open files on windows. This breaks all Salt commands.
Merge pull request #12972 from cachedout/network_lo

Wider detection of loopback interfaces
Fix traceback due to unavailable module

The class defined in this state references a module that is not
installed. This commit moves the class definition with the try/except
where the deps it requires are loaded.
Merge pull request #12974 from cachedout/ssh_windows

Fix esky breaking
Document the options not allowed in the
Document the options that should not be used in the tar_options
parameter. Let the command tar to fail if the user dosn't use the right
options like --file, -a, -x, etc.

It doesn't worth the effort to put a logic to detect forbidden options
in the module.

The current code of removing 'f' breaks long options that have 'f', like
--transform.