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 service check for gunicorn based on running workers
added messages to svc for # working and # idle workers
Add tokumx service check
Fix service check name
ElasticSearch agent check should only query the local node.
use better replica detection method

Fixes #1182
Merge branch 'master' into gunicorn-svc
cleanup
Pup removed from windows agent
Make installation script ready for 5.1.0 and pup removal
New button for status
Add a service check for Riak.

Remove the timeout and status code events because they provide the
same functionality as a monitor on this service check.
Add service check for Kyototycoon.
Add CouchDB service check.

Pretty much the same as how it works in Couchbase with a test.
Add service check to elastic search for connectivity
Small fixes as per Conor's comments
Fix spacing
Only collect relevant Docker metrics by default

Add collect_all_metrics option to collect all the others