Properly catch import errors in apt

When one accidentally tries to run this module as a user, he gets the error message that python-apt must be installed, no matter what. Because importing apt will trigger an exception as a regular user. Explicitly catching the ImportError will let the exception bubble. The exception clearly says Permission denied somewhere, and the user has a better idea, what he must fix.
Merge pull request #6480 from do3cc/patch-1

Properly catch import errors in apt
Correct check_mode conditional logic

The desired behavior is to _not_ add the ppa signing key when check_mode is
enabled.  This fix corrects the conditional logic to comply with the stated
behavior.
Fixes #6482 Check sysctl file path and catch read exceptions
Merge pull request #6491 from jlaska/apt_repository_signing_fix

[apt_repository] Correct check_mode conditional logic
Unit tests for ansible.utils
Fix docs for ec2_lc module.
Update CODING_GUIDELINES.md
Add integration test for apt_repository

Tests several ways to specify the repository.  For every repo added, the test
asserts that:

 * the apt-cache was updated as expected (depends on `update_cache` parameter)
 * the PPA key was installed (depends on `repo` format)
Merge branch 'unit-tests' of https://github.com/sivel/ansible into sivel-unit-tests
Add guide for Google Cloud Engine.
Add GCE guide and retool a bit to show the add_host interactions, improvements/upgrades are welcome.

Had to shoot the recently merged nova_group module in the head temporarily as it contained a dict comprehension, which means it can't work on all the platforms
and was also breaking docs builds on CentOS.  Will engage with list about that shortly.
Merge branch 'sivel-unit-tests' into devel
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