Add an Agent Check for getting the state of Windows services.

The check will submit a metric tagged by service name that has a value
depending on the state of the service. We could extend this check to
provide more information later on.
Better SmartOS support in the process checker

Updated the code to reflect the folllowing:
- psutil on SmartOS does not report shared
- SmartOS is unix, has file descriptors
- SmartOS does have ctx switching information

Updates
- Sets `real` to None (like win32)
- Moves the check for is_unix (and file descriptors) out of the is_win32
	branch
	- Looser coupling
- Moves the check for ctx switching out of the `real is not None` branch
  - Looser coupling
add another file to detect platform type

Amazon Linux distributions may not include a redhat-release file.
Add message rate metrics to RabbitMQ check.

This is useful when you have a queue that's consumed very quickly. In
this case the Agent will always/nearly always report 0 for queue sizes.

New metrics:
    - `rabbitmq.queue.messages.rate`
    - `rabbitmq.queue.messages_ready.rate`
    - `rabbitmq.queue.messages_unacknowledged.rate`
More rabbitmq metrics
Fix a typo in the rabbitmq metrics.
Remove max_containers limit for Docker check
Cleanup Docker example config file
Add socket_timeout parameter to Docker check
Make the container size collection configurable
Remove warning when no containers are running
Make event creation in Docker check optional
Revamp Docker events: aggregate, put details in the body, add container name
Tag docker.containers.running by image
Drop docker.total_* metrics because it is not used and meaningless
Better code structure and comments for Docker check
Add a flag to exclude process args
Minor cleanup and fix
Make dogstatsd support magic tags

Tags host and device are converted into metric attributes
Make dogstatsd test fully deterministic