MB-10086 [auto_collect]: Add REST endpoints & param validation

Add two new REST API endpoints and initial parsing / validation of
parameters:

* POST /collectLogs/start - Starts a log collection (if one isn't
  already collecting).
* POST /collectLogs/cancel - Stop an existing, already running log
  collection.

The status of log collection will be exposed via the existing tasks
API (/pools/default/tasks).

Change-Id: I91045097aa9c050bfe9fb5b26ab5015d5db704c5
MB-10086 [auto_collect]: basic manager and per-node processes

Adds two new processes for cluster-wide log collection:
collect_logs_manager and collect_logs_node:

* collect_logs_manager: gen_server responsible for managing a user's
  logs request, accepts requests for log collection and spawns a
  collect_logs_node process on each cluster node which logs are
  requested from, and aggregates their results.

* collect_logs_node: gen_server responsible for running cbcollect_info
  on a particular cluster node, and returning the result of that
  process back to the manager.

Change-Id: I6ef4c1b899a0519a317908f5e06b22170c71206f
MB-10086 [auto_collect]: Increment tasks version on start/complete

When the collectLogs task status changes between idle and running,
update the tasks version hash, to allow the UI to detect status changes.

Note the detailed progress (i.e. per-node status) doesn't trigger an
update of the version, only the high-level start/stop.

Change-Id: Ica1b87cfdceaa2c4dac51454293f426554e8aa18
WIP: auto collect-info UI

Change-Id: Ie432570488184eefcfe8c6175c75e082d67cfee6
MB-10086: cbcollect_info upload support.

Created some new options that allows a user to upload the log directly:

--upload
--upload-host
--customer
--ticket

Using the requests library to do the upload.

Created --script to allow erlang to drive cbcollect.

Change-Id: Ie2dcd0be2c45ac031e949be0f4c8564ef8fe9668