Support for Cyclic Graphs

Cyclic graphs can now be declared when connecting components.

1. The check for cycles has been removed from connection.

2. Check_config added to the workflow API. Drivers now call check_config on their workflow in their own check_config.

3. The Dataflow workflow checks for a cyclic graph in its check_config function, and raises an exception.

4. Cyclic graphs now invalidate correctly (formerly an infinite loop). 

Note: you still can't run a model with a cyclic graph. This will be possible with the development of a new kind of workflow. We may need other fixes in the infrastructure once we have a workflow that can execute the cyclic graph.