Remove deprecated `::File.exists?` Using `::File.exist?` instead.

Also fixed bug with symlinks what was checked the using `exists?` and `exist?` at same time, but in specs was mocked only `exists?`
logic is real convoluted.  if the new resource is a link and its not a symbolic link and the file does not exist then you want to skip set_all (i think).  so the code should be `if not <what i just said> then set_all`.

uhm, wait how can you have both a ::File.exist?(new_resource.path) and ::File.exist?(current_resource.path) check?

new_resource.path should == current_resource.path, so now i'm real confused.

this is also a massively touchy part of the code base -- 'here be dragons' -- and wouldn't be too surprised if this broke why-run on file providers in certain edge cases even though it passed all our specs (we don't test why-run very well).