workflows: update API and errors

* Workers now return directly, removing some preliminary code
  to close sessions.

* Adds new exception WorkflowAPIError to alert about API usage
  errors.

* Amends the way workflows within a workflow is initiated.

Signed-off-by: Jan Aage Lavik <jan.age.lavik@cern.ch>
workflows: revamp testsuite

* Implements a renewed testsuite for workflows with better coverage
  overall.

* Cleans up the tests a bit, renaming and moving the tests in
  test_halt into the renewed test_workflows suite.

* Makes the tests visible for the overall invenio testsuite by
  adding the TEST_SUITE variable.

Signed-off-by: Jan Aage Lavik <jan.age.lavik@cern.ch>
workflows: add more docs

* Adds basic documentation for API and Holding Pen view under
  api.rst.

* Adds docstrings in various modules to be included in general
  documentation.

Signed-off-by: Jan Aage Lavik <jan.age.lavik@cern.ch>
workflows: fix copyright and PEP8

* Fixes wrong copyright years throughout the module.

* Fixes some PEP8 issues and cleans code in some places.

* Fixes a subclassing problem in log handler.

Signed-off-by: Jan Aage Lavik <jan.age.lavik@cern.ch>