Renamed curry->partial to better match semantics

Documentation was updated to match, and a deprecated alias was inserted
for compatibility.
Added deprecation message
fix Issue 12287 - infinite loop on std.traits.moduleName on templated struct member
fix Issue 12309 - The template fullyQualifiedName returns wrong result
Change documentation to mention aliasing self away in unaryFun/binaryFun
Fix Issue 12315 - `array` at compile-time with all types

Problem was that `emplaceRef` calls `memcpy` for some types, which is unsafe and unavailable at compile time.

https://d.puremagic.com/issues/show_bug.cgi?id=12315
Issue 3882: Explicitly capture return values for strictly pure functions returning non-void
Merge pull request #1986 from Poita/bug12315

Fix Issue 12315 - `array` at compile-time with all types
Merge pull request #1975 from nordlow/warn-unused-returns

Issue 3882: Add warning for unused returns of strictly pure function calls
Merge pull request #1983 from Philpax/patch-1

Change documentation to mention aliasing self away in unaryFun/binaryFun
Merge pull request #1982 from 9rnsr/fix12309

Issue 12309 - The template fullyQualifiedName returns wrong result
Merge pull request #1979 from msoucy/issue4391a

Renamed curry->partial to better match semantics
Merge pull request #1978 from 9rnsr/fix12287

Issue 12287 - infinite loop on std.traits.moduleName on templated struct member