Puppet update. Changes are mostly bugfixes and simplifications, backwards compatibility and caching improvements.