Fix appender form elaborate assign types

Follow up on emplace fixes: This makes use of `emplace` in appender, as one should not be doing naked assigns on non-initialized memory.

Fixes:
http://d.puremagic.com/issues/show_bug.cgi?id=10690
http://d.puremagic.com/issues/show_bug.cgi?id=10859

Also, fixed a little issue with strong exception safety: The appender _data was being modified to reference the new items, before they were actually constructed. This left appender in an unspecified state if an exception is thrown.

Also, used named functions, to tone down on a bit on lambda useage (more readable too, IMO), as well as mitigate performance issues until we get the inline lambda fix/feature.

Assigning to @klickverbot . Pinging @9rnsr .