enforce: certain DSL elements may appear only 1x

add CaskInvalidError exception, which ought to be used in
several other places as well
HPULoad latest
Process SystemCommand arguments in list format

Previously, SystemCommand commands and arguments were processed as
strings which caused problems during shell interpretation if the
arguments were not escaped properly.  Now all commands are expressed
as arrays and no longer require their arguments to be escaped.
Additionally, stderr and stdout could have been interleaved in the
past and now they are always separated.
Merge pull request #2796 from leoj3n/hpuload-latest

HPULoad latest
Merge pull request #2624 from vmrob/system-command

Process SystemCommand arguments in list format
Merge pull request #2748 from rolandwalker/only_once

enforce: certain DSL elements may appear only 1x