Fundraising tech/audit parser

These are some notes on the GlobalCollect WR1 audit parsing module, `crm/modules/globalcollect_audit`.

Script workflow:
 * Find all .wr[1-9] files in the incoming audit file directory.
 * Parse WR1 files and create a list of transactions which are not already present in CiviCRM.
 * Move completely processed WR1 files (all transactions accounted for in Civi) to the completed directory.
 * Search DonationInterface log files for the missing transactions, and fill in details from our API XML.
 * Push reconstructed donations onto the queue.

Manual rescue
Right when we need it most, this script might time out and collapse. This is usually due to dangling "missing" transactions, which we haven't located the record in our logfiles. The cure is to move old WR1 files out of the incoming directory, giving up on the missing transactions.