Add merge and split nodes.

This makes the programming model a full dataflow implementation, as it allows for branching and recursion.
4 jobs from dataflow in 3 minutes 55 seconds (queued for 2 seconds)
Status Job ID Name Coverage
  Build
passed #3240
build_cmake

00:42

 
  Test
passed #3241
run_tests

00:42

 
  Sanitizer
passed #3243
run_address_sanitizer

01:31

passed #3242
run_thread_sanitizer

00:58