Optional staging directory

Allows intermediary objects to be moved to a seperate directory from the final output.  

This allows it to be easily git ignored.