Rename Puppetfile#root to #basedir
Implement Purgeable mixin
Make Puppetfiles purgeable
Make deployment sources purgeable
Redefine task_runner task addition API
Implement puppetfile purge command
Use insert_task_after over prepend

Using prepend can cause loops
Avoid doing duplicate git operations