Fix Issue 12668 -  std.traits.functionAttributes should use the new
getFunctionAttributes trait.
Make emplaceRef parameter optional
emplaceRef unittest
SList: removed unnecessary code in opBinary
SList: add missed opBinaryRight
SList: small change in unittests
Mark std.file.read as @trusted
Enhancement request 13022: add `std.complex.sqAbs`

Add `std.complex.abs2`, which returns the squared modulus of a
`Complex` or real number.

Rationale:
* It is common to need the squared modulus of a complex number,
and using `abs(z)*abs(z)` would be inefficient due to the
computation of the square root.
* The name `abs2` has been chosen for consistency with `abs`, and
for being mathematically more correct than `norm`, used by C++ STL
for the equivalent function.
* For genericity, the function `abs2` is also declared for real
floating point numbers, in which case it simply returns its
square.

UPDATE: use `sqAbs` instead of `abs2`.
Change ReadFile(...) == 1 to ReadFile(...) != 0
Using nested trusted functions
Fix trustedRef
Convert std.math.isFinite into a template
Convert std.math.isSubnormal into a template
Add floatTraits.SIGNPOS_BYTE for float
Convert std.math.signbit into a template
Convert std.math.copysign into a template
Fixup use of whitespace in places
Enable Unique!struct unittest

Prevent double delete of Foo by calling release in f().
Cleanup unittests a little.
Enable Unique!class unittest

Call release as a workaround to prevent Bar deletion in g(), leading to
access violation.
Fix Issue 13068 - std.typecons.Unique should disable postblit