Fixes for su on freebsd

Addresses multiple issues when using su on freebsd including
* su prompt differs between platforms, so turned that check into a
  regex comparison instead of a simple string comparison
* not using '-c' after su causes problems, so added that for all
  platforms
* fixed quoting issues due to multiple uses of '-c' introduced by
  the above fix

Fixes #7503
Fixes #7507
Don't double (or triple) up common error messages

process_common_errors() was called thrice, each time appending to the
existing error message, and leading to confusing repetition in the
message that was finally displayed.

Fixes #7498
Relax suds module requirement
Merge branch 'evgkrsk-suds' into devel
Merge module_vars into inject during template instead of updating

This way we won't overwrite values that are stored in the inject
with module_vars that should be lower precedence.

Fixes #7510
Merge pull request #7517 from amenonsen/double-error

Don't double (or triple) up common error messages
Replace CommandException with Exception
Merge pull request #7524 from aresch/patch-2

Replace CommandException with Exception
Fix typo in variable name
Merge pull request #7526 from aresch/patch-3

Fix typo in variable name
Fix typo in variable name
unified calls to fs function vs duplicate functions for file and
directory
open_iscsi module: support RC 21 when listing logged-in target
Merge pull request #7531 from bcoca/make_one_fs_function

Make one fs function
Merge pull request #7539 from jimi-c/issue_7503_freebsd_su_fixes

Fixes for su on freebsd
Don't fail in rax_cbs when the volume is not found
Differentiate machinfo output key/val separator

get_hw_facts for HP-UX: machinfo in HP-UX B.11.23 uses '=' as separator between key and value, while B.11.31 uses ':'.
Update test strategies guide.
Remove duplicate table of contents in Conditionals
added solaris fact detection for ansible_pkg_mgr