[test_ec2*] cloud integration test updates

To support parallel cloud test execution, create and provide a random string to
cloud integration tests.  The variable 'resource_prefix' can be used in cloud
roles and during resource cleanup to safely create/destroy cloud-based
resources.

Additional changes include:

 * The roles test_ec2_key and test_ec2_group were updated to use to
 {{resource_prefix}}.

 * Additionally, the Makefile was updated to set resource_prefix to a random
 string.  The Makefile will also use 'resource_prefix' during cloud_cleanup.

 * All test_ec2* roles were updated to add 'setup_ec2' as a role dependency.
Add an ast.parse unit test for modules to simulate ansible-doc
Micro-optimization of inventory.expand_hosts.detect_range
Micro-optimization: replace s.find(x)!=-1 with x in s

timeit shows a speedup of ~3x on Python 2.7.5 x86_64.
It also makes the code a bit shorter.
hostname module: don't filter hostnamectl with awk

There's no need to filter hostnamectl's output with awk because its man
page says:

    hostnamectl [OPTIONS...] {COMMAND}

       --static, --transient, --pretty
	   If status is used (or no explicit command is given) and one
	   of those fields is given, hostnamectl will print out just
           this selected hostname.

E.g. hostnamectl --static status => ansible.example.org