(PUP-716) W.I.P For early review only - DO NOT MERGE

This changes the API in a new implementation in a file called file_.rb
The intent is that it should replace the implemntation in File,
or perhaps directly in a Puppet::FileSystem class.

DO NOT MERGE THIS