Don't write certain empty values
arrayMergeRecursiveDistinct: Only merge associative arrays

This fixes the issue of certain text sections appearing twice, because they once consisted of two lines and were later condensed to a single line
patch.js shouldn't include itself

This eliminates the risk of unfinished downloads remaining in a state where they are unable to properly update themselves.