(RE-1040) Add OS module to detect windows platform

This commit adds a Pkg::Util::OS module and windows? method. It
also provides a DEVNULL device that maps to the appropriate value for
windows and everything else.
(RE-1040) Use PATHEXT to resolve executables

Tools like git on windows are actually named 'git.exe', so we need to
take into account path extensions when resolving them.

This commit uses the PATHEXT environment variable, which is standard on
Windows, but if it is absent for some strange reason, it defaults to a
reasonable set of extensions.
(RE-1040) Use the platform specific DEVNULL device

Use the platform specific DEVNULL device, otherwise, trying to redirect
commands to /dev/null on Windows results in "The system cannot find the
path specified."
(maint) Colorize rspec output on windows

The win32console gem is needed to colorize rspec output when running on
windows and ruby versions prior to 2.0.
Merge pull request #306 from joshcooper/ticket/master/RE-1040-base-windows

(RE-1040) Support building gems on Windows
(CPR-55) Add rubocop to the Gemfile
(CPR-55) Disable some less helpful cops for rubocop

This was largely borrowed from the puppet repo. It enables several style
cops that are disabled there.