Ensure gc & loadChanges don't run simultaneously

create doGC method & rcUpdates array- this.update now adds each update
to the array, and each update is loaded after gc  is done & the
previous update has been loaded to make sure that there isn’t
simultaneous writing of this.recentChanges