A concurrent GC for Posix systems

For Posix systems that support the fork() function (or the clone() on linux systems),
the conservative/precise GC can be made concurrent by enabling the 'fork' GC options in the usual ways, e.g.
by adding `--DRT-gcopt=fork:1` to the command line or by embedding
----
extern(C) __gshared string[] rt_options = [ "gcopt=fork:1" ];
----
into your linked binary (see $(LINK $(ROOT_DIR)spec/garbage.html#gc_config)).

The application continues execution and new memory is allocated from the system while the forked
process is marking heap objects. Parallel marking is disabled for the forked process so it only
uses a single thread for minimal impact on the concurrent execution of the application.

This reduces "stop the world" time at the cost of needing more memory and page-protection overhead when
writing to memory currently being scanned.
