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`.

 The Args file is a bit of a mess now. I already have a better design in mind. Will do that in another PR.
I think when constructing a command to shell out to, we should be handling arguments as an array and not concatenating everything in a string. For almost every method you can use to shell out in Ruby, there's also a way to pass in an array instead of a string, and that way you don't have to worry about empty arguments, escaping and whatnot. I don't know about Go interface, but would that be possible?