(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-2382) FFI typedef for win32_bool / fix User

 - Previously check_token_membership was failing in 2003 spec tests
   due to 2 issues
   - FFI::Pointer::NULL cannot be used in place of our :handle typedef,
     and therefore we must add a new constant of 0 to be used for NULL
     handles
   - FFI defines a :bool as variable width "(?? 1 byte in C++)", while
     Win32 defines a BOOL as int, and is fixed to 4 bytes on x86 and x64
 - Fortunately the bool issue really only bit us in the one spot where
   we were using a pointer to a bool, but by adding a new typedef for
   :win32_bool, all call sites comparing the return value needed to be
   updated for correctness to compare against FFI::WIN32_FALSE
 - A test was added to ensure these APIs are called during spec tests
   on all Windows platforms, and not just 2003
(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 #2691 from Iristyle/ticket/master/PUP-2382-FFI-win32-bool

(PUP-2382) FFI typedef for win32_bool / fix User
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