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.

This should fix #2556