Fix emplace for static arrays

Fix issue 10973 emplace internal error
http://d.puremagic.com/issues/show_bug.cgi?id=10973

Addresses 10978  Better support of emplace for structs with immutable members
http://d.puremagic.com/issues/show_bug.cgi?id=10978

Basically, `emplace` now explicitly supports static arrays. This was quite difficult, as static arrays have semantics un-like anything else. In particular, there are very different semantics for construction, assignment, or slice-assignement.

But I think I got almost everything.

I addressed 10978, in the sense that the code will now work, but is not optimal.

I apologize in advance if this is complicated, I saw no way arround it.

BTW: This fixes what I think is a blocker regression.