Split PurgeOldData() into smaller transactions

Running the entire purge in a single transaction seems to be causing issues.  Since this is just cleanup of old data, I've split the operations up into smaller transactions.