Add shell_out_with_systems_locale to ShellOut

In the spirit of moving away from Command in favor of ShellOut, I've included a `shell_out_with_systems_locale`, which mimics the behavior of `run_command_with_systems_locale`.

Once this is merged, https://github.com/opscode/chef/pull/1532 can be updated to use ShellOut (I have already done that work and have manually verified the changes work on Debian 7).

\cc @opscode/client-eng 
IMO, this is probably wrong.  If I set `ENV['LANG'] = 'en_US.UTF-8'` then i will not have set the LC_ALL env var, but I will have set my systems locale and then you will override this to 'C'.  The complexity comes because there's more than one way to do things.  LC_ALL takes priority and squashes everything else, then the individual other LC_* variables are next highest priority (e.g. LC_COLLATE) and then LANG takes effect.  I unset LC_ALL and sent `LANG=en_US.UTF-8` in my shell so that I can set `LC_COLLATE=C` and get sane sort order in `ls -la` and get UTF-8 goodness at the same time (`LC_ALL=en_US.UTF-8` would stomp the LC_COLLATE setting).

So, the point is just that its all horribly complicated.  I think you just want to pass in LC_ALL=>nil into shell_out in which case this test is ill defined (and may even be ill defined now?  unless I'm missing how you're clearing the LC_ALL in the actual ENV).

But I think you should never get 'C' back from  shell_out_with_systems_locale('echo $LC_ALL') unless you set that explicitly in the ENV or in the :environment option.