Merge pull request #1891 from 9rnsr/fix12024

[REG2.065a] Issue 12024 - template instantiation for swap(SysTime, SysTime) fails
Conflicts:
	std/algorithm.d
Fix Issue 12027 - Iterate set bits in BitArray.

Also adds:
- countTrailingZeros(v)
- countBitsSet(v)
- bitsSet(v)

Notes:
- There is a `popcnt` function in `core.bitops`, but it only works with `int`.
- `bitsSet(v)` could be a bidirectional and possibly even random access range, but I'll leave that for future work for now.
Performance improvements for dense BitArray.bitsSet.
Reimplement countTrailingZeros using bsf.
Merge pull request #1906 from blackwhale/issue-12069

Fix issue 12069
std.stdio: Fix generating documentation on POSIX

Declare a dummy HANDLE alias to allow the compilation of the
Windows-only File methods.
Refine BitArray.init requirements and docuemntation.
std.net.curl: Publicly import CurlOption
Merge pull request #1921 from 9rnsr/fix12089

[REG2.065a] Issue 12089 - std.utf.validate and inout(char[]) failts to compile
Merge pull request #1920 from 9rnsr/fix12098

[REG2.065a] Issue 12098 - libcurl bad argument on handle null
Remove package function `defaultInit`

It was a hack for the compiler bugs around T.init. Now the they are properly fixed, so the unused helper function is actually unnecessary.
Fix predicate template implementations in std.traits and std.range

Use T.init property instead of void initializer, because it will work even if T is const or immutable type.

I must change a part of unit test for the bug 6935, because we cannot support ranges which overrides init property.
Add a test case isAssignable!(void[1], void[1])
fix Issue 12071 - Algebraic won't take delegate returning structure

Use `Variant` rather than `VariantN` in order to pack arguments and returned value in opCall.
Merge pull request #1925 from 9rnsr/2.065

Puck up changes from master to 2.065 branch
Regression Test 8282 - new Array!T

This one doesn't have an equivalent test, so adding this to make sure the bug never comes back. The actual issue was fixed in 2.063.

https://d.puremagic.com/issues/show_bug.cgi?id=8282
std.stdio: Add File.windowsHandle, fdopen and windowsHandleOpen

This moves existing code from std.process to std.stdio for public use.
Fix issue 12007 - cartesianProduct does'nt work with ranges of immutables

The fix consists in making Repeat!T assignable, even if T itself is not.
TotalContainer documentation
unseal SList