updateTotalProgress = function(id, newLoaded, newTotal) {
            var oldLoaded = perFileProgress[id] ? perFileProgress[id].loaded : 0,
                oldTotal = perFileProgress[id] ? perFileProgress[id].total : 0;

            if (newLoaded === -1 && newTotal === -1) {
                totalLoaded -= oldLoaded;
                totalSize -= oldTotal;
            }
            else {
                if (newLoaded) {
                    totalLoaded += newLoaded - oldLoaded;
                }
                if (newTotal) {
                    totalSize += newTotal - oldTotal;
                }
            }

            callbackProxy(totalLoaded, totalSize);
        }
Invokes the callback with the current total progress of all files in the batch.  Called whenever it may
be appropriate to re-calculate and disseminate this data.

@param id ID of a file that has changed in some important way
@param newLoaded New loaded value for this file.  -1 if this value should no longer be part of calculations
@param newTotal New total size of the file.  -1 if this value should no longer be part of calculations