ensure non-root users can read arguments file when using sudo_user

Non-standard modules must read in the arguments file in order to access their arguments, however, when this file is transfered to the remote host it may only have the permissions 600.  This means that using sudo and sudo_user will result in permission denied errors when attempting to read the arguments file.

This patch fixes #4438 by explicitly forcing the arguments file to be world readable before executing the module.
Merge pull request #4538 from mulby/gabe/arguments-sudo

Ensure non-root users can read arguments file when using sudo_user and non-standard modules
Fixes #4301 Use module_common functions for mysqldump and return better errors
mysql_db: if connection is a socket, do not specify hostname
s3: better check for walrus

Check for Walrus endpoint by looking to see if the endpoint is not AWS.

This fixes a bug where the user specifies an AWS endpoint via S3_URL,
but the code interprets it as Walrus and then fails.
apt_key: Validate key_id and accept a leading '0x'
Merge pull request #4543 from lorin/s3-walrus

s3: better check for walrus
when searching for a plugin only look for a regular file
Merge pull request #4544 from mmoya/features

apt_key: Validate key_id and accept a leading '0x'
Merge pull request #4547 from stoned/find_plugin-fix

when searching for a plugin only look for a regular file
Fix 'ansible-doc -l' runtime error following commit 4430d0f

skip "module" not found as plugin, id est directory
Merge pull request #4548 from stoned/ansible-doc-fix

Fix 'ansible-doc -l' runtime error following commit 4430d0f
Fixes #4350 Create homedirectory if create=yes and directory is missing
Added the ability to add volumes to instances at creation time

This allows a volume to be cloned from a snapshot, or an existing
volume to be attached at time of instance creation.

This avoids any race conditions associated with creating the volume
after instance creation (e.g. writes happening before the volume is
mounted).