Enforce integer processing versions

This extends the support in WMWorkload and WMTask to include a
processing string along with the processing version and acquisition era.
The processing version is now enforced to be an integer and the lfns
are built as following:

<acquisitionEra>-<processingString>-v<processingVersion>

The job reports contain all these three elements for each output file
however the DBSBuffer will only use the processing version and acquisition
era.

The ReqMgr changes to allow the specification of these parameters in the
assign page, also updated the tests and templates. Include a test template
for TaskChain with multiple tasks, multiple acquisition eras and versions.

Fixes #4007

- added assert into reqmgr.py to check for correct request state
- modified template values of AcquisitionEra parameter
Fixes for problems uncovered during the DBS2/DBS3 consistency check:
  - Block size and file count is now correct.
  - Physics group is not correct.

This also adds a legitimate unit test which validates all data injected
and tests the special T0 DBS2/DBS3 upload only mode.
Bugfix Smart error handler

Bugfix for extreme cases of null reports and also
a few cases where jobs could get stuck in jobfailed.
Merge pull request #4406 from sfoulkes/dbs3_unittest

Fixes for problems uncovered during the DBS2/DBS3 consistency check:
Merge pull request #4407 from dballesteros7/fixErrorHandlerSmart

Bugfix Smart error handler
make rejected workflow to be archived and remove from tracking in wmstats
Merge pull request #4402 from zdenekmaxa/dballesteros7-proc-ver-fix

Enforce integer processing versions
Merge pull request #4414 from ticoann/make_reject_archived

make rejected workflow to be archived and remove from tracking in wmstats
Don't change file status while in upload only mode.
Merge pull request #4415 from sfoulkes/dbs3_fix

Don't change file status while in upload only mode.