Separate out the broken Adaptec driver detection code.

This is to make it easier to add other cases to catch
other kinds of broken controllers, like 3ware.
SAS drives on 3ware controllers don't report SMART stats.
Close file descriptors before exec'ing collectors.

Without this we leak FD 3 to the children, which is typically used by
the logging library to hold a reference to the current file (which
will eventually get rotated and later possibly deleted).
Mount binds removed from output list.
Adding support of JMX Composite Data Types. Catching and ignoring exceptions on getAttribute. Exclude string and boolead values from being reported

Signed-off-by: Vasiliy Kiryanov <vasiliy.kiryanov@gmail.com>
Updating of ES collector for 0.90.x support.

Signed-off-by: Vasiliy Kiryanov <vasiliy.kiryanov@gmail.com>
Don't use has_key() on dicts, use `in'.
Added haproxy tcollector script.

Signed-off-by: Vasiliy Kiryanov <vasiliy.kiryanov@gmail.com>
haproxy.py: Better error handling and code cleanups.

Changes:
  - Fix the return code of the process that wasn't propagated.
  - Invoke subprocesses in a simpler way.
  - Properly handle cases where various commands can fail (e.g. if
    `pidof' doesn't exist or if `ps' fails because HAProxy goes away)
  - Always explicitly close file descriptors instead of relying on
    Python's GC, which isn't a good practice.
  - No lines longer than 80 characters.
  - Use double quotes consistently.

Signed-off-by: Vasiliy Kiryanov <vasiliy.kiryanov@gmail.com>
haproxy.py: copyright header is added.
elasticsearch.py: List of tested ES versions is extended with 0.90.1 .