Allow to change executable (shell/interpreter) when using raw

This patch adds an optional 'executable=' option to the raw command line to override the default shell (/bin/sh), much like the shell module does.
Expands path on file operations

Path might have to be expanded on some operations. It seems that path
containing '~' are not.
Using os.path.expanduser in appropriate places solves the problem, but
this might be required in many other places.
Adds path expansion to two other methods

set_owner_if_different and set_group_if_different seems to need path
expansion too
Fix behaviour when file handles a path with tilde

Two problems here
* unchecked exception handling and erroneous assumption as to why
  an exception might fire
* although the file module expands the path, when using file_args
  the unexpanded path is passed.

Expected result: ~/path/to/file should work fine
Actual result: exception is because it doesn't find file with a message
about not being able to get the selinux context
add encoding documentation in postgresql_db
Merge pull request #1830 from willthames/fix_tilde_path_in_file

Fix behaviour when file handles a path with tilde
Merge pull request #1832 from legrostdg/devel

add encoding documentation in postgresql_db
Merge pull request #1821 from leucos/path-expand-fix

Expands path on file operations
Allow pattern[0] to address a single node

Replaces erroring out on it and requiring the abysmal pattern[0-0]
instead.
Merge pull request #1798 from dagwieers/raw-executable

Allow to change executable (shell/interpreter) when using raw
Extend executable= support in raw to include no execuable

Useful for managing not-UNIX things.
Added su over paramiko ssh using subclassing of paramiko_ssh module

Plenty still left to fix
* correction of options
* make connection modules plugins
Pluggable escalation mechanism
Removed inheritance from SuEscalation and SudoEscalation
Added import of random to sudo.py
Further improvements to catch errors and prompt matching
Corrected default escalator variable name
Removed debug
Ensured that sudo_user is set in ansible-playbook
Changed test for what to set sudo_user as
Malapropism correction - elevated privileges not escalated privileges.
Corrected option names for elevator options