(PUP-1807) Change empty string to be "truthy"

An empty string is now interpreted as a "true" value. It used to
represent a false value.

This representation is only in the future evaluator. Values are still
transformed when calling the 3x function API (it expect undef to be
encoded as empty string). This also takes place when transforming to the
3x catalog.
(PUP-1807) Add tests cases for undef equality checks

This adds checks that future evaluator treats '' != undef.
(It already did this, but tests were missing).
(maint) Remove commented out code
(PUP-2514) Remove ability to search for String type in String.

While philosophically true, a String consists of a number of
substrings, it is not very meaningful to support only the ability to
assert that. In order to be useful it would need to answer a much wider
variety is Enum[red, blue, green] in "it was blue, orange, and red", is
there a String of 1-5 characters in length inside the string "1234" etc.

This commit removes the naive support for String/Data-type search
in String as it is more confusing than helpful. If we later find it to
be of value, a more elaborate implementation is needed.
Merge pull request #2665 from hlindberg/PUP-1807_empty-string-is-the-truth

(PUP-1807) empty string is the truth
Merge pull request #2689 from hlindberg/PUP-2514_no-type-search-in-string

(PUP-2514) Remove ability to search for String type in String.
(PUP-2656) FFI  Puppet::Util::Windows::Registry

 - FFI GetACP
 - Remove requirement on gem windows-pr by removing 'windows/national'
 - Moved require for windows/registry into windows platform specific
 - Added module definition to satisfy MSI/Windows Package
(PUP-2656) Remove unnecessary 'win32/registry'

Removed 'win32/registry' from Puppet Feature base as it doesn't appear to be
used anywhere. All code that uses registry access already properly requires
it.
(maint) Ensure FFI code is standardized

 - Puppet::Util::Windows::Adsi - move to bottom of self
 - Puppet::Util::Windows::File - move to bottom of module
 - cleaned up uses of non-symbolic ffi_lib calls
Merge remote-tracking branch 'ferventcoder/ticket/master/PUP-2656-FFI-Windows-Registry'

* ferventcoder/ticket/master/PUP-2656-FFI-Windows-Registry:
  (PUP-2656) Remove unnecessary 'win32/registry'
  (PUP-2656) FFI  Puppet::Util::Windows::Registry
Merge remote-tracking branch 'ferventcoder/ticket/master/PUP-2382-Ensure-FFI-formatting'

* ferventcoder/ticket/master/PUP-2382-Ensure-FFI-formatting:
  (maint) Ensure FFI code is standardized
(packaging) Update PUPPETVERSION to 3.6.2
Merge remote-tracking branch 'upstream/stable'

* upstream/stable:
  (packaging) Update PUPPETVERSION to 3.6.2
Merge branch 'master' into puppet-4

* master:
  (packaging) Update PUPPETVERSION to 3.6.2
  (maint) Ensure FFI code is standardized
  (PUP-2656) Remove unnecessary 'win32/registry'
  (PUP-2656) FFI  Puppet::Util::Windows::Registry
  (PUP-2514) Remove ability to search for String type in String.
  (maint) Remove commented out code
  (PUP-1807) Add tests cases for undef equality checks
  (PUP-1807) Change empty string to be "truthy"