(PUP-3635) Add scanf function

This adds a scanf function that is useful when converting from a string
to other data types.
(PUP-3615) Remove string to number auto convert for compare and equals

This removes the problematic auto convert from String to Number for
comparisson operations.
(PUP-3615) Change test to query using string mode instead of integers

There was one test, that after the change to using the new 4x Collectors
failed when the string to numeric conversion no longer is done.

The test queried for "mode == 0677" which is wrong since mode is a
String. This commit corrects the test to use "mode == '0677'"
Merge pull request #3293 from hlindberg/PUP-3615_remove-string-to-number-auto-convert

(PUP-3615) Remove string to number auto convert for compare and equals
Merge pull request #3287 from hlindberg/PUP-3635_add-scanf-function

(PUP-3635) Add scanf function
(PUP-3621) Add search_paths and list to Cached environment loader

Recent changes to the Puppet::Environments::Cached loader changed its
construction so that it was no longer a subclass of Combined. This
meant that it no longer had search_path or list functions, which are
needed by the v2 environments to list known directory environments. We
were lacking spec coverage for this and it was caught by the
can_enumerate_environments system test.

In this commit, the Cached loader now delegates search_paths and list
calls to its @loader. Specs have been added for search_paths/list calls,
for the Combined loader in general, and for get_conf in Cached.
Accessors were added to EnvironmentConf for some of its internal
attributes so that it can more easily be tested.
Merge pull request #3300 from jpartlow/issue/stable/pup-3621-cached-environment-search-paths-and-list

(PUP-3621) Add search_paths and list to Cached environment loader
(PUP-3665) Fix resource overrides for 4x collector

Prior to this commit, the new implementation of collections caused
overrides to fail if the given attribute was a Resource. This was
because 3x required an instance of Resource rather than PResource
Type. In order to fix this issue, transform the override attribute
into the appropriate format for the 3x compiler.
Merge pull request #3307 from hkenney/issue/stable/PUP-3665_fix_collection_resource_overrides_with_future_parser

(PUP-3665) Fix resource overrides for 4x collector