fix Issue 10057 - Module info overwritten in shared phobos

- detect module collisions by checking that all ModuleInfo* of
  a DSO point into the same segment

- abort the program in that case

- added core.sys.linux.errno to find the name of the executable
Remove unittests from object.di
Merge pull request #488 from ibuclaw/rmunittest

Remove unittests from object.di
Use correct version identifier for linux

The epoll interface uses the incorrect version identifier for Linux - ie. "Linux" instead of "linux" making it quite difficult to actually use the API :-)
Merge pull request #489 from goughy/master

Correct use of Linux version identifier in epoll interface
Merge pull request #487 from dawgfoto/fix10057

fix Issue 10057 - Module info overwritten in shared phobos
fix Issue 10106 - [ICE] Ice in glue.c:1215 + 2 error messages without lines

Workaround for const postblit issue with AA.
Merge pull request #490 from 9rnsr/fix10106

Issue 10106 - [ICE] Ice in glue.c:1215 + 2 error messages without lines
Add a HACKING file.
gc: Rename gcalloc.d to os.d

In the future this file will hold more OS-specific functions needed by
the GC, and this file looks like a good place to put them, so all
OS-specific functions are grouped in a single module.

Also, having the prefix gc on every file, when all this is inside a gc
package, doesn't seem to make a lot of sense, thus it will be removed
progressively.
first pass of install targets
fix copy to not result in an extra layer of each subdir
gc: Remove (de)committed memory distinction

The distinction is only useful for Windows, Posix has no standard way to
do this, even when apparently you can emulate it in Linux using
PROT_NONE while mmap()ping (but Linux don't commit memory until you
write on it, so is pointless to use it in Linux).

This distinction makes the code a little more complex, because is spread
in several parts of the GC, and it doesn't have an evident positive
impact (having memory mapped but not committed is a very transient state
anyway, except on extremely rare situations, the GC will commit all the
memory eventually, as you keep allocating, it could take more or less
time, but eventually you'll have all your memory committed just before
the first time the collector runs).
Merge pull request #496 from leandro-lucarella-sociomantic/cdgc

gc: rename module and remove (de)committed memory distinction
actually build memoryerror.d
Merge pull request #495 from braddr/install

draft install target
simplify unittest for critical region
improve critical regions

- use a fine grained mutex to negotiate critical regions
  and thread suspension

- we no longer have to suspend & resume a thread
  that is in a critical region
gc: Remove redundant private protection from imports
Thread.suspend must now be synchronous

So remove the comments about a possible different implementation
and actually check for sem_wait failure.