begin work on new dataflow engine

Start by adding a topological sort for derive functions.
change internal order of derive tuples

Current order is: [:function :inputs :output]
build basic dataflow

Currently returns a new map with sorted derive functions.
get a very simple flow working

Add basic support for the transform and derive phase of a flow.
allow the use of wildcards in inputs

This implementation works but can be slow when more than one wildcard
is used.
ins has been changed to input-paths
explore the idea of a map which tracks changes
get tracking map working properly
clean up metadata on ascent
record changes in a separate map instead of metadata
record key removal
strip away associated TrackingMaps, only the top level contains changes
implement dataflow with the tracking map
add topo-sort test
use :inspect to record changes where further comparison is necessary
implement continue and effect phase
rename flow functions
dataflow messages are not the same as app messages

The dataflow namespace should not know anything about app message
format. We may not even call them messages in the context of a
dataflow.
implement the emit phase
add tests for emit phase and clean up tests