get rid of confusing bookkeeping structs for changes

objects are just fine thanks
minor scoping nit
better fix for github not allowing empty files

the previous fix for #46 was dropping changes entirely
this new fix just drops any changes creating an empty file
while keeping the very necessary renaming actions
change logic for clarity
mark deliberate edits to blank as erases

yetnother workaround for github not accepting blank files
cherry-pick fix for bug #168 from develop

fixes cell insertion issues