(PUP-2306) Force return type of generate to String

When Puppet::Util::Execution.execute was changed to return a subtype of 
String in order to retain return code information, some callers ended up 
breaking. This is because they made the assertion that types were exactly the
String class, rather than a subtype of String. There is also the issue that
only the primitive data structures should probably be returned from puppet
functions in order to not leak complex objects into the puppet language and
have hard to track down issues arise.

This changes the generate() function to force it to return a String of the
command's output.