Remove Autoincrement check for MySQL

From the MySQL documentation:

```
InnoDB uses the following algorithm to initialize the auto-increment counter for a table t that contains an AUTO_INCREMENT column named ai_col: After a server startup, for the first insert into a table t, InnoDB executes the equivalent of this statement:

SELECT MAX(ai_col) FROM t FOR UPDATE;
InnoDB increments the value retrieved by the statement and assigns it to the column and to the auto-increment counter for the table. By default, the value is incremented by one.
...
If the table is empty, InnoDB uses the value 1.
```

In case of a server restart we have security that the auto-increment will be preserved to the max job_id present, the only case where removing this check might cause problems
is if the most recent workflow was deleted and so the index in wmbs_job is lower than before and then you restart MySQL before the TaskArchiver/CleanUpPoller cleans couch. To account for this, this patch adds support in CMSCouch to specify a callback function on conflicts during a commit or queue of documents. For the ChangeState, job and fwjr jobs document are overwritten when a conflict occurs without generating conflicts (i.e. not using all_of_nothing).

The benefit of this change is avoiding errors when the JobCreator is restarted after a couch crash.

Fixes #4005
add PlugIn structure in AnalyticsDataCollector
Tier0 Plugin implementation

The Tier0 plugin for the AnalyticsDataCollector components
calculates the state of Tier-0 workflows based on subscription
information found in WMBS and updates the request document
in central WMStats with this status.

Additionally this patch fixes some bugs with PluginInterface implementation
patch and renames it from PlugIn to Plugin to conform with the same
name as the BossAir package (PlugIn is a bit harder to remember).

Fix the AnalyticsDataCollector unittest and removed it from the
allowed failing tests.

This requires #4227 to work, it also fixes the unit test breaks from it.

Fixes #4264
Merge pull request #4265 from dballesteros7/tier0-runStates

Tier0 run states
Implement Pending jobs per task/site functionality

Add a new column to the rc_threshold table, this indicates the number of pending
jobs to keep for an individual task.

Modify all the concerned DAOs and the JobSubmitter.

Rewrote the JobSubmitterPoller unit tests to make them all non-integration,
break the dependecy of having condor available and add tests for the different
mechanics happening in it such as threshold management, site status,
site whitelists/blacklists. Also includes a performance test.

Finally add a special option to setup the Tier-0 thresholds in one line from the
resource control script.
Merge pull request #4270 from dballesteros7/pending-jobs-per-task

Implement pending jobs per task/site functionality
0.9.29

Signed-off-by: Stephen Foulkes <sfoulkes@fnal.gov>
Fix unit tests broken

Change of interface that many test use

Fixes #4271
Merge pull request #4272 from dballesteros7/fix-unit-tests-rc

Fix unit tests broken
Merge branch 'master' of github.com:dmwm/WMCore
0.9.30

Signed-off-by: Stephen Foulkes <sfoulkes@fnal.gov>
Repair resource control interface

It was blowing on Oracle, MySQL didn't complain but
it wasn't doing the right thing
Merge pull request #4277 from dballesteros7/fixResourceControl-binds

Repair resource control interface
Merge pull request #4147 from dballesteros7/job-creator-mysql

Remove Autoincrement check for MySQL
add output dataset
Merge pull request #4279 from ticoann/add_output_datasets

add output dataset