(PUP-2693) Fix length calculation for sq-string

The calculation of string length was done wrong for dingle
quoted string resulting in negative lengths.
(PUP-2807) Add output of containing scope for log functions

The log functions in 3x outputs th name of the containing scope
(for notice etc.). The reimplemented methods for the 4x function API
did not include this behavior.

Now, the calling scope is passed to the Logging utility to be output
the same way as for 3x.
(RE-1497) Remove quantal from build_defaults

This commit removes quantal from all build defaults because it is end of
life. It removes the defaults from the build_defaults yaml.
Merge pull request #2807 from clantant/RE-1497/stable/srcs

(RE-1497) Remove quantal from build_defaults
(maint) Disable timesyncing for acceptance tests

We have been seeing windows time service errors on 2008R2 while
performing time syncing. This step should not actually be necessary
as vsphere seems to provide synchronized time across VMs from the pool.
(maint) Pin puppet git acceptance to use facter 2.0.2

Previously, when running acceptance tests on platforms that still use
git checkouts, e.g. Windows, we were installing puppet#stable and
facter#stable. However, we recently released facter 2.1, which now
resides in facter#stable. On Windows, facter 2.1 requires a newer
win32-security gem than what puppet#stable installs, causing errors
like:

    lib/win32/security.rb:54:in `elevated_security?': Incorrect function

This commit ensures we install facter 2.0.2 (commit 7845c9aa0df) when
running acceptance from git checkouts. This should only affect Windows
and Solaris, as Linux acceptance runs against packages, which will pull
in the most recently released dependencies.
(PUP-2891) Treat override of class as an error.

This makes an attempt to override a class parameter issue an
error from the runtime layer rather than expecting the underlying
3x implementation to do it when the left expression does not
result in a resource, or a resource that has 'class' as resource type.
(PUP-2881) Move win32-taskscheduler gem into repo

 - Remove win32-taskscheduler from gemspec through project_data.yaml
 - Update require statements where appropriate
 - All specs verified
(PUP-2881) Bump internal win32-taskscheduler ver
(PUP-2881) Remove taskscheduler's Windows::Process

 - Don't mixin windows-pr code any longer, instead rely on Puppet
   defined constants
(PUP-2881) Remove taskscheduler's Windows::Error

 - Don't mixin windows-pr code for error handling.
 - Rely on Puppet::Util::Windows::Error which is error code aware
 - Update error messages to be standardized, always mention HRESULT
   where applicable
 - Remove unreachable error message code (redundant pITask.nil? check)
(PUP-2881) Remove taskscheduler's Windows::Unicode

 - Use read_arbitrary_wide_string_up_to helper on FFI::Pointer to read
   wide strings from pointers instead of using windows/unicode
 - Use wide_string helper from Puppet::Util::Windows::String instead of
   multi_to_wide helper from windows/unicode
 - Ensure that we don't error trying to read strings from empty pointers
(PUP-2881) Add FFI require to taskscheduler
(PUP-2881) Replace taskscheduler's COM with FFI

 - Remove Windows::COM definitions found in windows-pr from the
   taskscheduler code.
 - FFI calls to CoInitialize, CoUninitialize, CoCreateInstance,
   CoTaskMemFree
 - With calls to CoTaskMemFree made as FFI calls, pass pointer instead
   of it's address
 - Add new HRESULT and LPUNKNOWN definition to api_types
 - NOTE: FFI::MemoryPointer.from_string appends an extra NULL byte to
   the GUID values, allocating 17 bytes instead of 16, which is OK here
   as the underlying API call to CoCreateInstance ignores the stray byte
(PUP-2885) Remove timeout around entire plugin sync operation

This removes the timeout around the entire plugin sync. With the
default setting of configtimeout to 2min, this means that the entire
sync must be performed within this time. This conflicts with the
individual timeouts for connecting and reading and may cause that a
perfectly valid operation is timed out in the middle of productive work.
(maint) Pinning rest-client to 1.6.7
(PUP-2885) Change find_all to each

There is no need to make a find_all() call here since we are not doing
anything with the results. Results are added manually into the
previously declared array 'files' instead. Changing the find_all() to
each() to make it a little more clear.
(maint) Pin rest-client gem to 1.6.7

This commit addresses spec failures under ruby 1.8.7.

Background:
Puppet uses the couchrest gem for the soon-to-be-deprecated
couchdb facts terminus. The couchrest gem has a pessimistic
dependency on the 1.6.x of the rest-client gem. The previous
release of the rest-client gem was 1.6.7 in 2011, but on July
8th 1.6.8 was released, and it introduced a dependency on
the rdoc 4 gem, which breaks various puppet code.

Since we're planning to deprecate this code anyway, and remove
it in puppet-4, I opted for the simple approach of pinning
this one dependency.
Merge branch 'stable'
Revert "(maint) Pin puppet git acceptance to use facter 2.0.2"

This reverts commit 401684525e1fc207486832a1f4a653a59132ce16.

The puppet/master branch doesn't need this pin.