(PUP-867) Remove support for dynamic defaults for future parser

WHen future parser is in effect, the lookup of default values
will now not look in "parent scopes" (i.e. scopes that *contain*
the resource). Instead it now only looks in inherited and enclosing
scopes + itself.

This removes the confusion that occurs when a class may be included
from different locations, and the location that wins manages to impose
the defaults from its scope. 

This removal goes hand in hand with dynamic scoping being removed
everywhere else.
(PUP-2632) Make Type be subtype of Object

Without this change, a reference to "any" must be written
Optional[Variant[Type, Object]] which is quite horrible.
There is no harm in making Type an Object since that is the most
abstract type as seen from the Puppet Programming Language.
(PUP-2314) Make assert_type handle lambda and user handling

This adds the ability to handle a Callable as the value, as well
as supporting a lambda that takes over the built in raising of
an error. This means that assert_type can be customized to fail
with special message, or to issue a warning and use a default.

assert_type(String, 1) |$expected, $actual| {
  warning("a $actual is not a $expected")
  "Free Beer, is the default"
}
(PUP-840) FFI Puppet::Util::Colors

 - Replace WriteConsole / WriteConsoleOutputCharacter calls with FFI
   equivalents
 - Remove string_encode function as it's no longer necessary and the
   test that was using it
(maint) Remove travis jobs which we know are failing to speed up travis runs.
Merge pull request #2685 from hlindberg/PUP-2314_assert-type-lambda-and-message

(PUP-2314)(PUP-2632) Fix assert_type's API
Merge pull request #2668 from hlindberg/PUP-867_remove-dynamic-defaults

(PUP-867) Remove support for dynamic defaults for future parser
(PUP-838) Move FFI code to bottom of process.rb
(PUP-838) FFI Puppet::Util::Windows::Process module

- Remove  dependency on windows/process, windows/handle, and
   windows/synchronize, all part of windows-pr (which is not a gem that is
   currently FFI-ed, even in the latest release)
- Add WAIT_TIMEOUT from Windows::Synchronize
- FFI WaitForSingleObject
- FFI GetExitCodeProcess
Merge pull request #2693 from kylog/maint/remove-failing-travis-jobs

(maint) Remove travis jobs which we know are failing to speed up travis ...
(PUP-838) GetExitCodeProcess checks FFI::WIN32_FALSE

 - This adds a fixup after reworking changes related to getting the proper
   boolean on windows.
(maint) Use the travis config used on master to workaround rvm issues
Merge branch 'stable'

Conflicts:
	.travis.yml
Merge pull request #2676 from Iristyle/ticket/master/PUP-840-FFI-Windows-Colors

(PUP-840) FFI Puppet::Util::Colors
(PUP-838) Process uses LookupPrivilegeValueW

 - Switch from LookupPrivilegeValueA to LookupPrivilegeValueW
 - In reality, this doesn't absolutely need to be done, but for the sake
   of consistency with other API calls, we use W suffixed functions
 - Add 2 tests that confirm that our usage of the Win32 API call is
   correct
(PUP-838) Use FFI helpers read_handle / read_dword
Merge branch 'ticket/master/PUP-838-FFI_Windows_Process'

* ticket/master/PUP-838-FFI_Windows_Process:
  (PUP-838) Use FFI helpers read_handle / read_dword
  (PUP-838) Process uses LookupPrivilegeValueW
  (PUP-838) GetExitCodeProcess checks FFI::WIN32_FALSE
  (PUP-838) FFI Puppet::Util::Windows::Process module
  (PUP-838) Move FFI code to bottom of process.rb