Issues/352 blank options

Enhance option variable replacement to use blank values if a value is present for issue #352

* commands, script args, etc now replace `${option.name}` with blank string if the value isn't present
* Default option values are used if an option isn't specified, even if not marked "required"
* Users can specify a blank value, even if an option has a default, as long as it is not "required"
* `run` and `dispatch` tools support passing blank arguments (`-option1 ""`)
* Script token expansion of the form `@option.value@` will also replace with blank if the value is not available.