Merge pull request #714 from github/exec_cmd

Use `Exec` except Windows for the last command run in the commands chain
Don’t trim empty string arguments when building command

Empty string arguments are removed when building an executable command, causing problems like https://github.com/github/hub/issues/725. However, we need to remove empty string arguments constructed from the commands layer, e.g., https://github.com/github/hub/blob/master/commands/browse.go#L112. We fix it by moving the removal logic to `Args.ToCmd`.