(QENG-713) add 'puppet_tmpdir' method

Add a `puppet_tmpdir` method in Unix::File that creates temporary
directories which are owned by the puppet user.

Turns out we don't need a corresponding `puppet_tmpfile`, as all of the calls to `tmpfile` happen on the agent.