(Maint) Color console output when the win32console gem is installed

Originally, we were using a feature to detect whether the platform
supports ANSI color escape sequences. The feature used to invoke
`Puppet.features.rubygems?`, which had the side-effect of loading
rubygems, if it hadn't already been loaded.

However, the ansicolor feature could cause infinite recursive loops when
trying to log that it failed to load the ansicolor feature. So the code
for loading the win32console gem was moved into Puppet::Util::Colors in
commit 91a4a7d.

However, in doing so, rubygems was not being loaded when attempting to
`require 'win32console'`, causing Windows to always raise a LoadError,
even when the win32console gem was installed.

This commit adds an explicit call to require rubygems and now correctly
colors console output when the win32console gem is installed.
Use absolute_path in module install spec

This fixes the module install spec on windows
Merge pull request #777 from pcarlisle/maint/2.7.x/fix_module_install_specs

Use absolute_path in module install spec
Use ExternalFileError when a file name and line are needed

Several places were trying to set line or file attributes on instances of
Puppet::Error. This changes those to use exception classes that include
ExternalFileError.
Merge pull request #780 from pcarlisle/maint/master/use-externalfileerror

Use ExternalFileError when a file name and line are needed
Merge pull request #776 from joshcooper/maint/2.7.x/fix-broken-console-color

(Maint) Color console output when the win32console gem is installed
Merge branch '2.7.x'

* 2.7.x:
  Use absolute_path in module install spec
  (Maint) Color console output when the win32console gem is installed
Fix failing spec tests for module tool
Merge pull request #781 from cprice-puppet/cleanup/master/windows-module-tool-spec-failures

Fix failing spec tests for module tool
(#3669) Disable SRV record use by default.

This is a nice feature to have, but it is not widely used.  It also triggers
some odd bugs in some common (embedded device) DNS recursive resolvers, which
simply ignore the question and lead to a long timeout waiting for the response
to come back.

Rather than ship this opt-out, it is safer to ship opt-in, and to allow people
to turn on the facility when they have configured it on their network.

Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>
Fix some windows acceptance failures
Use internal domain name for module tool tests

Some tests were intermittently failing when we used the hostname
"forge-dev.puppetlabs.com" rather than "forge-dev.puppetlabs.lan",
because it was resolving to the external IP address and somehow
that was being blocked by the firewall under certain circumstances.

This changes them to all use the internal name / IP.
Merge pull request #783 from cprice-puppet/cleanup/master/windows-acceptance-failures-20120515

Fixes for acceptance failures
Merge pull request #782 from daniel-pittman/bug/master/3669-disable-srv-by-default

(#3669) Disable SRV record use by default.
Merge pull request #784 from cprice-puppet/cleanup/2.7.x/module-dns-acceptance-failures

Use internal domain name for module tool tests
Merge branch '2.7.x'

* 2.7.x:
  Use internal domain name for module tool tests