Add directory_size option

This adds an option to remove old files from a directory until it is at or below a certain size.  I did end up doing a pretty big refactor of the provider since trying to fit the change into the case style was going to be complicated with a bunch of code copying.