(PUP-716) Change Puppet::FileSystem::File to module methods

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.
(PUP-716) Change more tests after refactoring

This also fixes the spec_helper which had a reference to
FileSystem::File
(PUP-716) Make more tests in fileset_spec pass
(PUP-716) Fix up YAML specs
(PUP-716) Fix up fileset_spec (1 failing test remains)

One test is still failing.
(PUP-716) Fix up content_spec.rb
(PUP-716) Fix up watcher spec
(PUP-716) Fix up all of util
(PUP-716) Fix up the type tests
(PUP-716) Fix up metadata_spec after refactored FileSystem changes
(PUP-716) Fix up transaction tests
(PUP-716) Fix up tests in ssl dir

This also migrates the overlay support from the previous form of the
file system abstraction to this form.
(PUP-716) Refactor and mae file_system/file_spec green

This refactors the file_system/file_spec to comply with the new API.
Several problems found with the implementation.

* Bad include of memory_impl
* facade methods did not relay to _impl
* assert_path did not consider objects coercable to string
  (e.g.watched file)
(PUP-716) Refactor tempfile_spec after FileSystem API change
(PUP-716) Fix up base_spec tests after FileSystem API change
(PUP-716) Fix reference to removed FileSystem::File
(PUP-716) Fix typos after change of FileSystem API

writable? is spelled just like that
A BucketFile is not a Pathname
Removed reference to FileSystem::File
(PUP-716) Fix reference to FileSystem::File in implementation

This also removed the file_2.rb that was merged into Puppet::FileSystem
(PUP-716) Remove references to FileSystem::File in non code
(PUP-716) Fix up direct_file_server_spec after FileServer API change