fix fenv for Windows
also compile fenv into the lib
Fix 11761: aa.byKey and aa.byValue are not forward ranges.

The problem is that Phobos' `isForwardRange` template requires that
`.save` must be `@property`, otherwise it does not acknowledge the range
as a forward range; however, aa.byKey and aa.byValue's `.save` weren't
marked as such. This PR fixes this problem and introduces a unittest to
ensure the forward range criteria are satisfied.
DRY up the unittest.
Merge pull request #925 from quickfur/issue11761

Fix 11761: aa.byKey and aa.byValue are not forward ranges.
Merge pull request #899 from Trass3r/fixfenv

fix fenv for Windows
Optional monitors initial implementation.
Marked monitored types with @monitor attr.
Unittest added.
Do typeinfo's m_flags manipulation in more atomic way.
monitorsLock made static shared.