After seeing @peterhuene's fix up yesterday at a76d681946642e916e93a374d8e055b44bab2898, I took a look at this pull. There are some file api accesses via the native ruby api (e.g. here) and some via the `Puppet::FileSystem` abstraction (e.g. line 50). For consistency's sake, we should probably scrub this pull to use that abstraction consistently. @apenney @adrienthebo thoughts?