[CHEF-4157] split Platform to prune dep graph

Many files/classes depend on Chef::Platform just to use the `windows?`
method. The part of Chef::Platform that maps providers to platforms has
very heavy dependencies (which may trigger circular deps when loading
some files) which are not needed for most users of Chef::Platform.
[CHEF-4157] remove all implementation from chef/platform
Merge branch 'CHEF-4157'