Fix newline in operatingsystemrelease fact

Without this patch applied there is a trailing newline in the value of
the `operatingsystemrelease` Facter fact on Debian systems.  The root
case of this problem is the change made in df71d88 which replease
useless use of cat with File.read methods.

This patch addresses the problem by stripping off all trailing
whitespace from the affected operatingsystemrelease resolvers.
(refactor) Send operatingsystemrelease through Facter::Util::FileRead.read

Without this patch there are number of different strategies employed
inside of the file defining the operatingsystemrelease resolutions.
This is a problem because File.read can be tricky to stub in isolation,
and the inconsistency in the file provides a bad example for
contributors.  Finally, we lose some automatic debugging and exception
handling when the file cannot be read due to existence or permission
problems.

This patch addresses the problem by changing all of the instances of
File.open and File.read to `Facter::Util::FileRead.read`, which is a
supported and public API.

In addition, this patch also removes all occurrences of the magical
global back reference variables.  The use of these are discouraged
because they are not thread safe, and they're slightly more difficult to
read.  The convention of if match = /pattern/.match('pattern string')
... replaces the magic global variables.
Merge branch 'fix/1.7.x/operatingsystemrelease_newline' into 1.7.x

* fix/1.7.x/operatingsystemrelease_newline:
  (refactor) Send operatingsystemrelease through Facter::Util::FileRead.read
  Fix newline in operatingsystemrelease fact