Maint: fix a load order problem with type(:component)
Puppet's autoloader has an incompatibility with ruby's native 'require'
statement that makes it possible to reach the same code multiple times,
which can cause genclass to create multiple classes with the same name.
This patch fixes the uses of some puppet types so that they are loaded
using the autoloader instead of using 'require'.
Paired-With: Jacob Helwig <jacob@puppetlabs.com>