Fail in ec2 if exact_count is specified without using count_tag

Fixes ansible/ansible#9431
made subcategories for cloud modules for better organization
Merge pull request #268 from bcoca/subclouds

made subcategories for cloud modules for better organization
Some more module categorization.
Renames.
Move internal category to utilities to remove one more category from the left hand menu, keeping it concise.
added __init__.py to new cloud subcategories so builds work again
Merge pull request #276 from bcoca/fixed_cloudmodules_build

added __init__.py to new cloud subcategories so builds work again
LinuxService: check properly if systemd is running

Use a pure Python reimplementation of the [sd_booted(3)][1] function
from [systemd v210][2].

[1]: http://www.freedesktop.org/software/systemd/man/sd_booted.html
[2]: http://cgit.freedesktop.org/systemd/systemd-stable/tree/src/libsystemd/sd-daemon/sd-daemon.c?id=v210#n465
Transform comment into docstring
LinuxService: use the same logic as systemd for appending .service to an unit

There's no need for complex rules to determine if `.service` should be
appended to a unit's name, just do like systemd does.  For more details
see commit [696c245a23d55e4249651573eb9c61b68e61580c][1] and
[`unit_name_mangle`][2] from systemd.

[1]: http://cgit.freedesktop.org/systemd/systemd/commit/?id=696c245a23d55e4249651573eb9c61b68e61580c
[2]: http://cgit.freedesktop.org/systemd/systemd/tree/src/shared/unit-name.c?id=696c245a23d55e4249651573eb9c61b68e61580c#n501
LinuxService: check properly if systemd manages the unit

There's no need to list and look at all the unit files, just check the
[load state][1] of the current unit by running `systemctl -p LoadUnit show`.

This also covers cases like when an unit is masked (which means that
systemd can't start or enable it).

[1]: http://cgit.freedesktop.org/systemd/systemd-stable/tree/src/shared/unit-name.c?h=v208-stable#n52
LinuxService.get_service_tools: check for systemd first

Check for systemd first then for legacy init systems. This simplifies
the code.
LinuxService: d.get(k, None) -> d.get(k)

From the documentation:
> D.get(k[,d]) -> D[k] if k in D, else d.  d defaults to None.

So there's no need for the `None` parameter.