Changes how exec-once files are ran. Fixes #1006

Instead of copying files to an internal folder, take a page out
of Puppet's playbook and create a hash of the file. If hash
has changed between runs, run the file, else ignore.