Added attribute checking to  __enter__ method.

The __enter__ method will check if the file
object exists and returns either the object
or None.
Fixed code to support python 3.

In python 3 itervalues() has been removed
from dictionaries with values().
Added support for makeflow_format option.

Arguments will be shorten to a basename when the
makeflow_format is set to 1.
Makeflows now generate a logfile.

A makeflow will generate messages into
the logfile when the workflow has started
and completed.
Updated workflow queuing and added persistence.

* A workflow is now persisted to file.
* Previously run workflows are fetched from file.
* A duplicate workflow will not be added to the queue.
* A duplicate workflow will attach to the currently
  running workflow.