Add dependencies.py back

This is imported by template.py, so you can't actually run from a fresh
checkout without it.
Add missing delete from reality

This fixes all of the tests except for update_replace3, which is not yet
working on the main 'iterative' branch either.
Add a basic_create test with complex dependencies

The current basic_create scenario had very simple linear dependencies.
Move it to linear_basic_create and import the basic_create test from the
other branches to test more complex dependencies.

Note that the test is currently failing, since the algorithm fails to
respect the dependencies properly (it tries to create E immediately
after A and B, before C).