allow dataflow function arguments to be configured

This allows dataflow functions to be written with "normal" arguments
which represent values in the data model rather than being passed the
inputs map. This change makes dataflow functions easier to write and
test.
use maps for dataflow inputs to specify argument names
supply the :vals argument as a single collection
group arguments with same key into a single collection
update tests to work with recent dataflow argument changes