Fix patcher brokenness from filesystem PR

This fixes some bugs from my already-merged filesystem PR; most notably, it restores the manifest structure to using wchar_t arrays, since ARRAY(T) allocates memory for itself in chunks, allocated with a single malloc call (thereby bypassing constructors).  The long-term fix is probably to re-evaluate the necessity of this non-obvious design implementation, but the short-term fix is to restore the old design.