[ARM] Implement parse!real for systems with 64bit reals

and some unittest fixes
std.conv: Fix ambiguity when target has ctor and source has opCast
std.array: Allow joining constant arrays
The std.traits.ImplicitConversionTargets returns wrong result for dchar
fix 7069
some fix in std.traits.ImplicitConversionTargets
remove templates
Fix Issue 11830 - ByLine range length incorrect.

If you don't call `front` on a `ByLine` range then an extra line is reported. This change ensures the extra line is consumed when only calling `empty` without `front`.

https://d.puremagic.com/issues/show_bug.cgi?id=11830
Fix Issue 4725 - std.algorithm.sum()
Document use of Kahan vs. vanilla summation
Added LREF to sum in reduce
pairwise sum returns double for ranges with float elements
Remove first line laziness from ByLineImpl.
Fix Issue 5361 - Add TemplateOf and TemplateArgsOf

Examples:

```d
struct Foo(A, B) {}
alias Bar = Foo!(int, real);
static assert(__traits(isSame, TemplateOf!Bar, Foo));
static assert(is(TemplateArgsOf!Bar == TypeTuple!(int, real)));
```

https://d.puremagic.com/issues/show_bug.cgi?id=5361
Fix Issue 12003 - std\zip.d(421): Deprecation
fix Issue 12024 - template instantiation for swap(SysTime, SysTime) fails
Fix union case
Move isBlitAssignable to std.traits
Fix for enum and alias this cases
Fixed typo.