Fix Issue 13057 - posix getopt variables in core/sys/posix/unistd.d should be marked __gshared
Fix declaration of lstrcmp/lstrcmpi in windows.d

According to MSDN (http://msdn.microsoft.com/en-us/library/windows/desktop/ms647488(v=vs.85).aspx), lstrcmp and lstrcmpi
follow the usual pattern of being macros expanding to either the ANSI (lstrcmpA) or Unicode (lstrcmpW).
The current declaration in windows.d misses the postfix A/W. This causes compile errors with ldc because the
mangled names are identical.
Merge pull request #874 from redstar/lstrcmp

Fix declaration of lstrcmp/lstrcmpi in windows.d
Merge pull request #869 from klickverbot/getopt-tls

Fix Issue 13057 - posix getopt variables in core/sys/posix/unistd.d should be marked __gshared
fix Issue 13078 - [dmd 2.066-b2] AA rehash failed with shared
Merge pull request #877 from 9rnsr/fix13078

[REG2.066a] Issue 13078 - [dmd 2.066-b2] AA rehash failed with shared
Fix wrong comparison of uint[] due to invalid unsigned subtraction.
Add unittest for issue 13073.
Hmph, int[] comparison is also wrong (liable to int overflow).
Merge pull request #881 from quickfur/issue13073

Fix wrong comparison of uint[]/int[] due to invalid subtraction.
Fix 13111: GC.realloc returns invalid memory for large reallocation

added missing handling if the reallocation is too large for the current pool
add unittest
Fix marking threadasm.S as not requiring an executable stack.

- Use of @progbits breaks on ARM, use %progbits instead.
- Works on FreeBSD, too.
- Works only for ELF files.

See https://wiki.gentoo.org/wiki/Project:Hardened/GNU_stack_quickstart for more info.
Merge pull request #884 from rainers/fix_13111

Fix 13111: GC.realloc returns invalid memory for large reallocation
Merge pull request #885 from redstar/execstack

Fix marking threadasm.S as not requiring an executable stack.
The GC will now call destructors on heap allocated structs. It is impossible to feasibly implement the invokation of arrays of finalizable structs, due to the inability to know which elements in the array, which may, or may not have been, initialized to begin with. There is also no way to know what the actual length of the array is, you can know how much memory was allocated for it, but not whether there was ever a reference to that point in the array. The destructors for structs in classes are still called as they were previously, which is immediately after the body of the outer class's finalizer.
Added _d_delstruct for use by the delete operator when deleting a pointer to a struct. Also removed the need for a separate array of struct infos by storing the pointer to it at the end of the page for structs allocated by the GC that have finalizers.