Fixup for SuSE and openSuSE.

Account for differences in packages names across RHEL/CentOS
and SuSE/openSuSE.
If an AWS account does not have a default subnet in their VPC configuration, then creating instances in that VPC will not automatically provide a public IP/DNS. Boto added this functionality in 2.13.0 (NetworkInterfaceSpecification.associate_public_ip_address).

This change adds assign_pubic_ip as a parameter to the ec2 module, ensuring that it is not set to one of BOOLEANS_TRUE if vpc_subnet_id is not also set, and if Boto is less than 2.13.0.
Exit 0 with no matched hosts

And also print to stdout not err

This lines up with how ansible-playbook will exit. 0 in the case of no
matched hosts. This makes it easier to script ansible commands w/
variable iventory input which may or may not have an entry for the
specific ansible task being scripted. No matched hosts is acceptable,
but matched hosts w/ failures is not.
Added `-y` flag to `query_package`

* library/packaging/pkgin:

Signed-off-by: giorgio-v <giorgio@refactor.it>
Fix for RPM build on opensuse

Opensuse (tested on 12.3) doesn't have package 'python2-devel', just
python-devel. This patch sort this and allow build RPM successfully
on OpenSuse 12.3.
Add ansible.module_utils.rax
Fixed hostname module for RHEL6 Workstation
Added support for parsing in the SLES patch level correctly

On SLES, the setup module was returning the architecture as the distribution version (i.e. platform.dist() didn't quite return the right thing). This change checks for /etc/SuSE-release and grabs the second column in the third line as distribution_version.
Fix checking for existence of EC2 tags
hostname module: add support for Amazon Linux
ReturnData is used throughout but not actually imported
I think that resultant is meant to be the contents of the combined file

It is used for the transfer and as a diff param but isn’t actually
defined anywhere before it’s used. This seemed like the least bad place
to set it.
Passing in complex_args throws ‘unsupported parameter for module’ errors

When using assemble only params (e.g. remote_src) the copy (and I’m
guessing file) modules throw an error that the param isn’t supported.
Simply removing the complex_args param fixes it for me, but I’m not sure
that’s the correct thing to do
The file module doesn’t have it’s module_args reset

I believe that this should be reset in the same way that the copy module
does
dest_contents isn’t always defined, so don’t pass it around

I think this is also a bit of a hack since it should probably be set
before being used, I’m just not sure what it should be set to.
rewrite options to dict parser, fixes #5032
Fix "manual" ansible-playbook example in guide_vagrant.rst

The given example is trying to load an inventory file with the -i option, so it should probably be given the actual Vagrant-written inventory file name. I contemplated using 'vagrant_ansible_inventory_default' instead (which is what my Vagrant demo actually creates) but 'vagrant_ansible_inventory_machinename' is more consistent with the existing example in the docs.
Merge pull request #5120 from mechfish/patch-1

Fix "manual" ansible-playbook example in guide_vagrant.rst
Merge pull request #4502 from dxsarmit/ansible

New library/cloud/ec2 module parameter (assign_public_ip) for non-default VPC instance launching.
Fixes #4796 handle unicodedecode errors from dmidecode output