Working on "join": first basic implementation of full join

* Refactored direct workflow handler
* Implemented get_upstream_tasks() method for direct workflow
* Added code that filters out incomplete joins from a list of next commands

TODO:
* Take conditions and ERROR state into account
* Better testing
* Partial join

Change-Id: Ie4cbf100181fa0769f80ddebbfe18446a2991654
Merge "Working on "join": first basic implementation of full join"