Set Puppet[:libdir] correctly if Puppet[:modulepath] contains multiple paths

When the `Puppet[:modulepath]` contains several paths (separated by `:`), the `Puppet[:libdir]` is currently not set at all, causing e.g. custom functions not to be loaded.

With this patch, the `lib` subdirectories of modules from all `modulepath` entries are added to the `libdir`.