(PUP-2035) Make loader infrastructure work for functions
This completes basic loader infrastructure for Puppet 4x.
It supports module loaders (from file and gem), static loader
(constants), and a minimal start configuring a puppet_system_loader
and an environment_loader.
Unit testing checks the basic behavior of the loaders.
TODO: configure module loaders based on their dependencies, and the top
most API how code in a module gets associated with its loader.