Use "autoEmplace" for performance

The idea is that we are trying to reduce the amount of "conditional calls to emplace" in phobos (see #1655).

The problem though, is that when making a "trivial emplace" (eg for `int` int), the dereferencing that is used to *call* said emplace clashes DMD's inliner, severely hurting performance.

To workaround both issues, I'm introducing `autoEmplace`, which is nothing more than a "centralized conditonal emplace caller". Doing this helps keep the code clean, safe, and fast.

Using `autoEmplace` over "raw" `emplace`, I was able to see speed benefits of upwards to 40&times; for `std.array` (!), and 10&times; for `Appender`, fixing https://d.puremagic.com/issues/show_bug.cgi?id=10864 at the same time.

Other places that could benefit from this is `std.container.Array`, but I wanted to keep the changes minimal for now. I also didn't change `Appender`, as I want to do that in another dedicated pull.