In theory, `chunks` is not a `struct`, so it's either a class, a pointer, or built-int int/float, or an enum, or a slice). So it has no elaborate assign. This means we can straight up do `=` and it should* work.

This is buggy, because it forgets to take into account static arrays, which may be an aggregate containing structs with an elaborate opAssign. In particular, at the time, traits like `hasElaborateAssign` didn't even *handle* static arrays correctly. Furthermore, it is complicated when you take into account that `S[4] arr = S(5)` is legal code...

Long story short, the pull was already complicated, and I wasn't sure how to fix it at the time, so I just left it as-is, and put in a "TODO". 

I'd come back and fix this now, but at the same time, I wouldn't mind first getting Appender fixed (#1529), and maybe even waiting a release, to allows code in the wild to stress test the new implementation.