init Argv as 0 length, use it correctly in exec

The first pass allocated Argv with a length of 1. The yaml unmarshal
in particular uses append() to populate the array so the command would
end up empty.

Also noticed that os.Exec takes argv0 then the full argv and fixed
that.