Add ability to set puppet Exec timeout and to do a "dry run"

This patch allows setting "global" settings in puppet templates and
implements the "timeout" global setting for controlling the timeout
for puppet's Exec resource. In addition, a "dry run" setting that
generates manifests for development purposes but doesn't actually
apply them, is added.

Change-Id: I5a845a6569aec7188093abfdf354e46fee8c274c