(PUP-2349) Add windows specific expectation for deprecation_warning

Previously, the spec test assumed that no deprecation warnings would be issued.
However, the test relies on puppet using the `source_permissions` of the
source, and that behavior is deprecated on Windows. As a result, the test
was failing on Windows.

This commit updates the test to expect only the "Copying owner/mode/group/.."
deprecation warning on Windows, and no deprecation warnings on other platforms.
(PUP-2349) Add windows specific expectation for deprecation_warning

Previously, the spec test assumed that no deprecation warnings would be issued.
However, the test relies on puppet using the `source_permissions` of the
source, and that behavior is deprecated on Windows. As a result, the test
was failing on Windows.

This commit updates the test to expect only the "Copying owner/mode/group/.."
deprecation warning on Windows, and no deprecation warnings on other platforms.

Reviewed-by: Josh Partlow <joshua.partlow@puppetlabs.com>
(PUP-3069) Fix path expansion for environment.conf test on Win

The intention in these specs is for the default_manifest setting
to be absolute for the platform under test.  Without an expand_path,
the POSIX style setting we're using will still seem relative on
windows, causing these two tests to fail.  Really these settings
should only be used on a master instance, which would be POSIX,
but for completeness sake, this commit expands the initial
default_manifest paths.
Merge branch 'feature/master/pup-3069-win-spec-fix'

* feature/master/pup-3069-win-spec-fix:
  (PUP-3069) Fix path expansion for environment.conf test on Win
Merge branch 'master' of github.com:puppetlabs/puppet

* 'master' of github.com:puppetlabs/puppet:
  (PUP-3069) Fix path expansion for environment.conf test on Win
  (PUP-2349) Add windows specific expectation for deprecation_warning
(maint) Expect test to fail on windows ruby 2.0 x86

Ruby 2.0 x86 on windows does not observe the 'TZ' environment variable, so the
test would generate a Time object whose `#zone` was 'Eur', but had timezone
offset based on the current timezone.

    C:\work\puppet>ruby --version
    ruby 2.0.0p481 (2014-05-08) [i386-mingw32]
    C:\work\puppet>irb
    irb(main):001:0> ENV['TZ'] = 'Europe/London'
    => "Europe/London"
    irb(main):002:0> tm = Time.local(2012, "dec", 11, 15, 59, 2)
    => 2012-12-11 15:59:02 -0800
    irb(main):003:0> tm.zone
    => "Eur"
    irb(main):004:0> tm.gmt_offset
    => -28800

Ironically, ruby 1.9 and 2.0 x64 do the correct thing:

    C:\Windows\system32>ruby --version
    ruby 2.0.0p481 (2014-05-08) [x64-mingw32]
    C:\Windows\system32>irb
    irb(main):001:0> ENV['TZ'] = 'Europe/London'
    => "Europe/London"
    irb(main):002:0> tm = Time.local(2012, "dec", 11, 15, 59, 2)
    => 2012-12-11 15:59:02 +0000
    irb(main):003:0> tm.gmt_offset
    => 0
    irb(main):004:0> tm.zone
    => "Eur"

This commit modifies the test so that we expect failure on windows 1.8 and
2.0 x86, otherwise, we expect the test to pass on other ruby platforms.

Reviewed-by: Josh Partlow <joshua.partlow@puppetlabs.com>
(maint) Namespace constant declaration in specs to prevent warnings

Add module namespacing to two specs declaring an FS constant (for
convenience) so that we don't receive warnings about the duplicate
declaration.
Merge pull request #3021 from nfagerlund/docs_clarify_resources_resources

(docs) Clarify note about ssh_authorized_keys in resources resource type
Merge pull request #3016 from nfagerlund/docs_37_file_function

(docs) Revise and unify explanations of module/file references in functi...
Merge remote-tracking branch 'upstream/master' into puppet-4

* upstream/master: (37 commits)
  (maint) Namespace constant declaration in specs to prevent warnings
  (maint) Expect test to fail on windows ruby 2.0 x86
  (PUP-3069) Fix path expansion for environment.conf test on Win
  (PUP-2349) Add windows specific expectation for deprecation_warning
  (PUP-2349) Add windows specific expectation for deprecation_warning
  (PUP-3069) Clear configuration_file for tests
  (PUP-3069) Test both future and current parser with default_manifest
  (PUP-3069) Update default_manifest setting descriptions
  (PUP-3069) Change restrict_environment_manifest name
  (PUP-3163) Create and manage the mode of $reportsdir
  (maint) Clear record of configured deprecated settings
  (PUP-3069) Add an integration spec for default_manifest
  (PUP-3069) Halt compile if environment has manifest conflict
  (PUP-3069) Add spec test for new default options
  (PUP-3069) Add default manifest settings
  PUP-3155 Improve spec tests around the PE puppet version
  (PUP-3153) Guard against nil when closing Uniquefiles
  (PUP-2984) Remove old installation directory when going from x64 to x86
  (PUP-1884) Migrate MSI deps into puppet repo
  (PUP-3154) Create and manage the mode of $statedir on redhat
  ...
Merge remote-tracking branch 'upstream/master' into stable

* upstream/master: (767 commits)
  (maint) Namespace constant declaration in specs to prevent warnings
  (maint) Expect test to fail on windows ruby 2.0 x86
  (PUP-3069) Fix path expansion for environment.conf test on Win
  (PUP-2349) Add windows specific expectation for deprecation_warning
  (PUP-2349) Add windows specific expectation for deprecation_warning
  (PUP-3069) Clear configuration_file for tests
  (PUP-3069) Test both future and current parser with default_manifest
  (PUP-3069) Update default_manifest setting descriptions
  (PUP-3069) Change restrict_environment_manifest name
  (PUP-3163) Create and manage the mode of $reportsdir
  (maint) Clear record of configured deprecated settings
  (PUP-3069) Add an integration spec for default_manifest
  (PUP-3069) Halt compile if environment has manifest conflict
  (PUP-3069) Add spec test for new default options
  (PUP-3069) Add default manifest settings
  PUP-3155 Improve spec tests around the PE puppet version
  (PUP-3153) Guard against nil when closing Uniquefiles
  (PUP-2984) Remove old installation directory when going from x64 to x86
  (PUP-1884) Migrate MSI deps into puppet repo
  (PUP-3154) Create and manage the mode of $statedir on redhat
  ...
(packaging) Update PUPPETVERSION to 3.7.0
Merge remote-tracking branch 'upstream/master' into stable

* upstream/master:
  (packaging) Update PUPPETVERSION to 3.7.0
(PUP-2411) Make Program/Locator contain byte vs char offset encoding

As discussed in the ticket. Ruby before 1.8.7 has no way to efficiently
scan a string by character (it is done per byte). In Ruby 2.0.0 the
StringScanner can respond with character positions instead of byte
positions. It is however slower than using the byte positions.

To make 1.8.7 or 1.9.3 encode strings in chars would be prohibitively
slow (a string has to be constructed to be able to know its length for
every token). In Ruby 2.0.0 it is more or less a wash (they byte way of
calculating this is however still faster (when last measured).

This fix makes it possible to record the information in the model if the
offsets in the model are byte or char based. Currently, there is no
implementation that uses char based, so this is preparation for the
future and making the AST model's API more stable.

As a comparison on other platforms (JVM) it is far easier and more
efficient to get the char positions than the byte positions).
(PUP-987) Remove the Ruby DSL

This removes the deprecated Ruby DSL support. It also removes
deprecation checks; an attempt to use a .rb manifest somewhere will
simply fail in some undefined manner, just as if there was an attempt to
use some other arbitrary text file. Most likely a syntax error from the
parser if someone forced it to use a .rb file.
(PUP-987) Remove .rb from the list of manifest extensions to autoload

This removes .rb from the glob of files to autoload/import
(PUP-987) Remove mention of Ruby DSL from documentation comment
(PUP-987) Remove support for the @ruby_code block in catalog AST types

This removes the ability to define the logic of node, class and
resource AST by giving it a block of ruby code. This was only used by
the Ruby DSL API.
(PUP-3144) Rewrite OpenBSD service provider with rcctl(8)
(PUP-2452) Refresh support for Package type

This is implemented behind a feature that each provider must
implement. It is intended to allow source distributions to
recompile packages on a notify or subscribe event.

It allows patterns like:

    package { "app-admin/nginx":
       ensure       => latest,
       hasreinstall => true,
       subscribe    => File['/path/to/nginx/compile/options'];
    }