Add workflow persistence

Saves successfully generated workflows in the database to persist the
scheduled job.

	modified:   bin/yerbad
	new file:   yerba/db.py
	modified:   yerba/managers.py
	modified:   yerba/workflow.py
	modified:   yerba/yerba.py
Rename id to workflow_id

A name should not redefine a builtin name.

	modified:   yerba/managers.py
Fix warnings and a syntax error

	modified:   yerba/managers.py
	modified:   yerba/yerba.py
refactor status updating

The workflow status is now updated as jobs are completed and the status
is saved to the database.

	modified:   yerba/managers.py
refactor generate_workflow

Job generation is performed in a separate function. Removed log file
support from a workflow and added job generation support.

	modified:   yerba/managers.py
	modified:   yerba/workflow.py
set the completion time

When a workflow finishes either by cancellation, failure or completed
update the completed field for the workflow.

	modified:   yerba/db.py
	modified:   yerba/managers.py
Import only necessary functionality

	modified:   yerba/db.py
Return the row id on insertion

	modified:   yerba/db.py
Add route to get all workflows

The route delegates to the workflow manager to query the database to
fetch all workflows.

* Add db helper function to get all workflows

	modified:   yerba/db.py
	modified:   yerba/managers.py
	modified:   yerba/yerba.py
refactor generate_workflow

A workflow can now a template argument in the arguments, or inputs, or
outputs. A template is specified using curly braces and template name.
The only template currently supported is the workflow id.

The generate_workflow method now enters its entry into the database
after the workflow_object has been validated.

* Refactor generate_workflow to take a database argument
* Add template support for WORKFLOW_ID

	modified:   yerba/managers.py
	modified:   yerba/workflow.py
refactor workflow fetching

When an ids list is provided only the matching workflows are returned
otherwise all workflows are returned.

	modified:   yerba/db.py
	modified:   yerba/managers.py
	modified:   yerba/yerba.py
return the actual workflow status

When a workflow is returned the status name should be returned rather
than the status id.

	modified:   yerba/yerba.py
Move yerba module into new module base

Fixes the name conflict of the yerba package with the module.

	modified:   bin/yerbad
	modified:   yerba/__init__.py
	renamed:    yerba/yerba.py -> yerba/base.py
Refactor imports and names

	modified:   yerba/base.py
	modified:   yerba/core.py
	modified:   yerba/db.py
	modified:   yerba/managers.py
	modified:   yerba/routes.py
	modified:   yerba/workflow.py
	modified:   yerba/workqueue.py
Remove template support from a workflow

This behavior should not be exposed and is being removed.

	modified:   yerba/workflow.py
add job logging helper

Add helper function to log a jobs info.

	modified:   yerba/workflow.py
Inputs, outputs and arguments should be lists

Validate that a inputs, outputs, and arguments are within a list.

	modified:   yerba/workflow.py
Log jobs as the are completed

Jobs are logged as they are completed rather than when a workflow has
finished.

	modified:   managers.py
	modified:   workflow.py
change import to be more explicit

Clean up code to use a more concise style.

	modified:   managers.py
Refactor import in base

The base now imports the specific functions required rather than
the module.

	modified:   yerba/base.py