Allow step and method to accept variables

Adds the ability for the step and method functions to accept variables
inline as part of their function call.  Variables can now be specified
as pairs of strings.  This differentiates variables from options which
are now assumed to be specified by keyword value pairs.  This commit
also adds two tests to test this new behaviour of the step and method
functions.

e.g.
(cmd-step
    (new-workflow)
    ["output"]
    []
    ["echo $MSG > $OUTPUT"]
    ;; Variables can be defined inline as key value pairs with strings
    ;; for keys
    "MSG" "My Message"
    ;; While options are key value pairs with keywords for keys
    :timecheck false)