(PUP-2563) Remove 1.8.7 support

General comments for reviewers:
* Despite the ticket wording this is really "remove anything < 1.9.3". The
  distinction only comes up in a handful of commits, mostly those removing
  code where the original committer already assumed < 1.9.3 was equivalent
  to 1.8.7.
* I proceeded primarily by searching the code base for either 'RUBY_VERSION' or
  '1.8' and then doing the appropriate thing, ranging from comment tweaks to
  minor refactors.
* There are still some references to 1.8 in the code where it made sense to
  me for context (or in one case in interface/action.rb where disentangling
  the 1.8 impl was going to lead to too much of a rewrite to be worth it).
* I didn't make any effort to scrub 1.8-ish idioms generically - that seemed
  beyond the scope of the current ticket and too unbounded. I imagine those sort
  of changes will be picked up by refactoring as we go forward.
* That said, in some cases there were broken windows I fixed because I was there.
* I'll add comments to a couple individual commits where I had questions.
Yeah, Andy was the one who originally set it up that way IIRC.  I don't have super strong feelings here - though I think @kylog has the better name given prior art - `Puppet::FileSystem::Posix` and `Puppet::FileSystem::Windows`, presuming there are no other naming collisions, or breakages caused by that.  It's own commit of course.