Correctly handle .repo files in zypper_repository module

Before the changes, removing a repository required a repo url. This shouldn't be required since zypper allows removing a repo based on its alias (mapped to name in this module).

The name variable was always required, which is misleading since repofiles provide their own alias. So a runtime check was added to avoid this confusion.

Additionaly, running this module on .repo files weren't idempotent. e.g

Before:
$ ./hacking/test-module -m library/packaging/zypper_repository -a "repo=http://download.opensuse.org/repositories/devel:/languages:/python/SLE_11_SP3/devel:languages:python.repo name=foo"
{"repo": "http://download.opensuse.org/repositories/devel:/languages:/python/SLE_11_SP3/devel:languages:python.repo", "state": "present", "changed": true}
$ ./hacking/test-module -m library/packaging/zypper_repository -a "repo=http://download.opensuse.org/repositories/devel:/languages:/python/SLE_11_SP3/devel:languages:python.repo name=foo"
{"msg": "Repository named 'devel_languages_python' already exists. Please use another alias.\n", "failed": true}

After:
$ ./hacking/test-module -m library/packaging/zypper_repository -a "repo=http://download.opensuse.org/repositories/devel:/languages:/python/SLE_11_SP3/devel:languages:python.repo"
{"repo": "http://download.opensuse.org/repositories/devel:/languages:/python/SLE_11_SP3/devel:languages:python.repo", "state": "present", "changed": true}
$ ./hacking/test-module -m library/packaging/zypper_repository -a "repo=http://download.opensuse.org/repositories/devel:/languages:/python/SLE_11_SP3/devel:languages:python.repo"
{"repo": "http://download.opensuse.org/repositories/devel:/languages:/python/SLE_11_SP3/devel:languages:python.repo", "state": "present", "changed": false}

Signed-off-by: Hector Acosta <hector.acosta@gmail.com>
Performance tuning inventory functions for large inventories
Check at most 16 characters of the key. Fixes #7936

Signed-off-by: Hector Acosta <hector.acosta@gmail.com>
Fix unsupported regexp parameter in assemble
Use correct parameter name in error message.

The parameter is called `cron_file` but the error message uses `file` which is confusing.
ELB enhancements

* connection draining
* cross AZ load balancing
Update guides.rst
now compares permissions correctly
Fixed bug with environment path for homebrew_cask
Fix exec_command prototype for the plugin
CODING_GUIDELINES: Fix typo: / => \
Merge pull request #7974 from msabramo/CODING_GUIDELINES_slash_to_backslash

CODING_GUIDELINES: Fix typo: / => \
Correct typo: 'manaul' to 'manual'
Merge pull request #7981 from adamnbowen/patch-1

Correct typo: 'manaul' to 'manual'
Merge pull request #7972 from mscherer/fix_lxc

libvirt_lxc: Fix exec_command prototype for the plugin
ec2_ami_search: new EBS types

In ec2_ami_search module, add support for the new SSD-backed EBS (ebs-ssd)
volume as well as support for provisioned IOPS (ebs-io1).
fix swap translation on 4.x openbsd with 2.5.4 python
nova.py: Remove DOCUMENTATION block

@mpdehaan said that nothing uses them at
https://github.com/ansible/ansible/pull/7988#issuecomment-47600006
Correct typo: 'additioanl' -> 'additional'
Correct typo: 'receords' -> 'records'

I should read more than a sentence at a time when I'm correcting typos—sorry for the typo correction spam ;)