(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.
Merge pull request #2559 from zaphod42/issue/master/pup-2306-generate-returns-strings

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