This moves the shell expansion code from different implementation files for every Host to Host/common. The reason for this is that the method for expanding the shell arguments is the same for a majority of platforms, so there is no reason to leave it unimplemented for everyone.
Additionally, this generalizes the Host method a little to be useful even if you don't have a ProcessLaunchInfo handy by changing the arguments to accept only the information that it needs, instead of the entire ProcessLaunchInfo. As a side effect, this also fixes a redundant test of the process launch flag, which was being checked once in the Platform and another time in Host::ShellExpandArguments.
Use lldb_private::Args instead of std::vector<std::string>.