Remove hardcoded mangling of the n_capability symbol (#5864)

This was breaking cross-module inlining, since the symbol ended up being
mangled twice, if the call happened to be inlined into another module.
Add GHCi monad. Experimental for now.
DEPRECATE Foreign.Marshal.Error.void (use Control.Monad.void instead)
Don't include sys/timeb.h on FreeBSD.

sys/timeb.h is deprecated on FreeBSD meaning validation fails quite early
without this patch.
use mkWeakNoFinalizer# (#5879)
Fix openFile003 for Win64
Add a type-family for comparing numbers.

For the moment, this replaces the class (<=) because it is
easier to fit with GHC's coercion evidence.
Remove old test outputs

These files are no longer used
Fix some more tests on Win64
system001 test is expected to fail on Win64
Tidy up the ThreadDelay001 test code
Fix an off-by-one error in freeProgArgv
Use IORef/atomicModifyIORef instead of STM

Follows discussion on the libraries@ mailing list; see comments for
rationale.
Use RTS version of getMonotonicNSec on Windows (#6061)
Use in-process file locking on Windows (#4363)
Fix build.
Modify 'SingRep' to support arbitrary singleton types.
Update to support singleton types with custom implementations.

Now 'Sing' is a data family, and users may provide data instances
to implement singletons of new kinds.
Don't use stdcall on Win64: It isn't supported; ccall is used instead
Add INLINABLE pragmas in Template Haskell

Thanks to mikhail.vorozhtsov for doing the work