Jdmundrawala/windows env path

Fixes issues: 
https://github.com/opscode/chef/issues/2016 
https://github.com/opscode/chef/issues/2009

Includes changes from/Should replace:
https://github.com/opscode/chef/pull/1876
This uses the windows api instead of find/replace and I've added functional tests
isn't the path a lot more limited than 32k?  also that is a really obfuscated way to say 32k.  `' ' * 32768` or `' ' * 32 * 1024` would be clearer, along with a note simply saying you're preallocating a 32k buffer.