Bump libgc version

* README.md: Bump version to 7.5.0.
* configure.ac: Likewise.
* include/gc_version.h (GC_TMP_VERSION_MINOR): Likewise.
Fix ABORT message in GC_restart_handler

* pthread_stop_world.c (GC_restart_handler): Fix ABORT message.
Allow to force GC_dump_regularly set on at compilation

* doc/README.macros (GC_DUMP_REGULARLY): Document.
* misc.c (GC_dump_regularly): Turn on by default if GC_DUMP_REGULARLY
macro defined (but not NO_DEBUGGING) - useful for embedded environments.
* misc.c (GC_init): Skip "GC_DUMP_REGULARLY" environments variable check
if GC_dump_regularly already set by the corresponding macro (only if not
NO_DEBUGGING).
Fix 'Bad signal in suspend_handler' abort on FreeBSD-9.2

* pthread_stop_world.c (GC_suspend_handler_inner): If signal number
is zero then silently return (instead of ABORT) if FREEBSD (to
workaround a bug in FreeBSD 9.2-RELEASE regarding signals processing,
bug is observed only if THREAD_LOCAL_ALLOC defined).
New macro (GC_ALWAYS_MULTITHREADED) to set multi-threaded mode implicitly

* darwin_stop_world.c (GC_use_threads_discovery): Skip assertion on
GC_need_to_lock if GC_ALWAYS_MULTITHREADED.
* misc.c (GC_init): Likewise.
* doc/README.macros (GC_ALWAYS_MULTITHREADED): Document.
* include/gc.h (GC_allow_register_threads): Update comment (regarding
GC_ALWAYS_MULTITHREADED).
* include/private/gc_locks.h (I_HOLD_LOCK): Reformat code.
* include/private/gc_locks.h (GC_need_to_lock): Define as macro
(to TRUE) if GC_ALWAYS_MULTITHREADED defined.
* include/private/gc_locks.h (LOCK, UNLOCK): Define to UNCOND_[UN]LOCK
if GC_ALWAYS_MULTITHREADED.
* misc.c (GC_init): Call GC_init_parallel() if GC_ALWAYS_MULTITHREADED
but not GC_NO_THREADS_DISCOVERY (only for Win32, needed since
GC_allow_register_threads does nothing if GC_ALWAYS_MULTITHREADED).
* misc.c (IF_NEED_TO_LOCK): Ignore GC_parallel if
GC_ALWAYS_MULTITHREADED (since GC_need_to_lock is always true).
* pthread_support.c (GC_need_to_lock): Do not define varaible if
GC_ALWAYS_MULTITHREADED (since defined as a macro).
* win32_threads.c (GC_need_to_lock): Likewise.
* pthread_support.c (GC_allow_register_threads, pthread_create): Do
not alter value of GC_need_to_lock if GC_ALWAYS_MULTITHREADED.
* win32_threads.c (GC_allow_register_threads, GC_CreateThread,
GC_beginthreadex, GC_pthread_create, GC_init_parallel): Likewise.
* win32_threads.c (GC_allow_register_threads): Do not alter
"parallel_initialized" value if GC_ALWAYS_MULTITHREADED (so that
GC_allow_register_threads is a no-op if the macro defined).
Fix ADD_DEFINITION in CMakeLists.txt for kFreeBSD

* CMakeLists.txt: Fix broken ADD_DEFINITION for kFreeBSD.
Fix CMakeLists.txt: do not override CMAKE_OSX_ARCHITECTURES

* CMakeLists.txt: Since latest OSX compiler (clang) provided by Xcode is
not accept "-arch ppc"; So if CMAKE_OSX_ARCHITECTURES is defined by
client, CMakeLists.txt should not force "ppc;i386;x86_64".
Update AUTHORS file
Remove barrett_diagram file duplicated by tree.html

* Makefile.direct (DOC_FILES): Remove doc/barrett_diagram entry.
* Makefile.dj (OTHER_FILES): Likewise.
* doc/doc.am (dist_pkgdata_DATA): Likewise.
* doc/barrett_diagram: Remove file (as the content is duplicated in
doc/tree.html).
Remove non-existing DISCARD_WORDS from GC data structure ASCII diagram

* doc/tree.html (picture): Remove DISCARD_WORDS (since always zero
and already removed from the code in gc-6.0alpha6).
Bump GC_collect_at_heapsize in GC_add_to_heap. In the normal case it is
recalculated straight after. But in the case where it's called directly
from alloc_mark_stack, it isn't. If the mark stack gets very large,
this can cause GC_should_collect to always return true, and
GC_alloc_large to get stuck in a loop calling GC_collect_or_expand.
Remove 'opp' local variable in GC_malloc_X
(code refactoring)

* alloc.c: Update comment (about free lists).
* fnlz_mlc.c (GC_finalized_malloc): Remove "opp" local variable
(replace *opp with <kind>freelist[lg]).
* gcj_mlc.c (GC_gcj_malloc, GC_gcj_malloc_ignore_off_page): Likewise.
* malloc.c (GC_malloc_atomic, GC_malloc, GC_malloc_uncollectable):
Likewise.
* mallocx.c (GC_malloc_atomic_uncollectable): Likewise.
* typd_mlc.c (GC_malloc_explicitly_typed,
GC_malloc_explicitly_typed_ignore_off_page,
GC_calloc_explicitly_typed): Likewise.
Fix ok_init assignment (missing cast) in GC_new_kind_inner

* misc.c (GC_new_kind_inner): Add cast from int to GC_bool for ok_init.
Eliminate redundant *flh check for null in GC_allocobj
(code refactoring)

* alloc.c (GC_allocobj): Do not check *flh twice if the value
is non-NULL (GC_new_hblk is not called thus *flh stays non-NULL in
that case).
Fix typo in GC_collect_or_expand comment

* alloc.c (GC_collect_or_expand): Fix a typo in comment ("setting").
Make heap growth more conservative after GC_gcollect_and_unmap call
(Consider heap size growth since latest GC_gcollect_and_unmap
invocation instead of absolute heap size value when computing amount
of extra memory blocks to add to heap in GC_collect_or_expand.)

* alloc.c (GC_heapsize_at_forced_unmap): New static variable.
* alloc.c (GC_gcollect_and_unmap): Store current heap size to
GC_heapsize_at_forced_unmap; add comment.
* alloc.c (GC_collect_or_expand): Change blocks_to_get computation
considering heap size growth since latest GC_heapsize_at_forced_unmap
call (instead of the absolute heap size value); do not call
GC_expand_hp_inner twice with same argument.
* include/private/gc_priv.h (_GC_arrays._heapsize): Refine comment.
Fix 'attribute declaration must precede definition' warning (clang-3.1)

* extra/gc.c: Include gc_inline.h explicitly before including mallocx.c
(to workaround "attribute declaration must precede definition" warning
reported by clang-3.1 for GC_generic_malloc_many); define
GC_PTHREAD_REDIRECTS_ONLY before including gc_pthread_redirects.h.
* include/gc_pthread_redirects.h (GC_dlopen, GC_pthread_sigmask,
GC_PTHREAD_CREATE_CONST, GC_pthread_create, GC_pthread_join,
GC_pthread_detach, GC_pthread_cancel, GC_pthread_exit): Do not declare
if GC_PTHREAD_REDIRECTS_ONLY defined (to workaround
"attribute declaration must precede definition" warning reported by
clang-3.1).
Remove extra trailing backslash in GC_collect_or_expand
(adjust code formatting)

* alloc.c (GC_collect_or_expand): Remove unnecessary trailing
backslash (in multi-line expression).
Remove hb_large_block field (use 1 extra bit of hb_flags instead)

* allchblk.c (setup_header): Use (hb_flags & LARGE_BLOCK) != 0
instead of hb_large_block.
* private/gc_pmark.h (PUSH_CONTENTS_HDR): Likewise.
* mallocx.c (GC_realloc): Likewise.
* include/private/gc_priv.h (struct hblkhdr): Remove hb_large_block;
define LARGE_BLOCK to access corresponding bit in hb_flags (only if
MARK_BIT_PER_GRANULE).
Fix LARGE_BLOCK value used for hb_flags
(fix commit a49b495)

* include/private/gc_priv.h (LARGE_BLOCK): Redefine to 0x20 (to avoid
collision with MARK_UNCONDITIONALLY defined in case of ENABLE_DISCLAIM).