The logic change in 57d477514067a37665386968ef0a37abf86e3380 introduced a bug where neither strings nor arrays provided as `args` for shell provisioners would pass validation. This fixes that problem along with a few extras: - split out arg validation into a private method - update comment describing valid args - add a few unit tests around config validation