Allow multiple users to use ec2 inventory scripts

Move the ec2 cache files from a shared /tmp location to the
user's ansible tmp directory.
Fail EC2 inventory better with restricted EC2 users

If a user has full EC2 access but no RDS access, the user
should still be able to query the EC2 inventory, although
will not obtain any information about any RDS instances.
Added prev_state for directory
Move more responsibility to common EC2 module

Moved `AWS_REGIONS` into `ec2` module
Created `ec2_connect` method in `ec2` module
Updated modules able to use `ec2_connect` and `AWS_REGIONS`
Don't override sudo if transport is set to local.
https://github.com/ansible/ansible/pull/5251
Fixes #5196 return a unique list of hostnames for a single host pattern
Fixes #5227 Corrected doc example of with_first_found
Merge pull request #5153 from willthames/ec2_inventory_multiuser

Allow multiple users to use ec2 inventory scripts
Merge pull request #5236 from willthames/ec2_inv_rds_fail_safe

ec2 inventory: Fail EC2 inventory better with restricted EC2 users
Fixes #5238 Improve error messaging about unquoted variable references in playbooks
Merge pull request #5264 from drewlll2ll/file-fix

file module: Fixed missing prev_state == 'directory' in file
Merge pull request #5311 from willthames/ec2_refactor

ec2 modules: Move more responsibility to common EC2 module
Merge pull request #5504 from smoothify/synchronize-sudo

Synchronize Module: Improved sudo override behaviour.
Modified docsite layout to use Google custom search.
Merge pull request #5516 from chouseknecht/devel

Modified docsite layout to use Google custom search.
Merge pull request #5517 from lichesser/fix_set_depreciation_warning

Fixes #5513. set is built-in since 2.4 and deprecated since 2.6
Merge pull request #5520 from kormoc/fix_symetric_tyop

While looking into filters, I noticed that the documentation has a typo....
Merge pull request #5528 from dverhelst/devel

Adding support for detecting RHEV Hypervisor in ansible_virtualization_type
Merge pull request #5404 from sivel/rax-improvements

rax module: improvements
Fixes #5353 create etc/hostname file in debian if it does not exist