workflows: several updates

* Adds a new workflow for harvesting workflow with BibSched
  integration.

* Updates several workflow tasks used by the above workflow.

* Several PEP8 and cosmetic fixes.
workflows: improve engine function

* Makes the BibWorkflowEngine function to return the current
  task/function name a bit more robusts and renames it from
  getCurrTaskName to get_current_taskname.

* Some minor PEP8 fixes.
workflows: better exception handling

* Adds a new file errors.py that contains all custom workflows
  exceptions as per the new standard.

* Improves the exception handling in BibWorkflowEngine and
  client.py.
workflows: harvesting workflow improvements

* Several updates in the 'generic_harvesting_workflow'.

* The workflow tasks in marcxml_tasks are now using the OaiHarvest
  models correctly in terms of loading arguments deserialized.

* Removes duplicate code in client.py.

* Updates demosite regression tests.

Co-authored-by: Guillaume Lastecoueres <guillaume.lastecoueres@cern.ch>
Merge pull request #126 from jalavik/workflows-engine-updates-rebased

Workflows engine updates rebased