Workaround Linux NTPL TSX bug (Mercury Bug: 334)

New versions of glibc on x86_64 attempt to use the TSX extension of newer
Intel processors.  This converts mutex-protected critical sections into
transactional memory critical sections.  However the implementation appears
to be buggy and the marker lock in Boehm GC causes an assertion to be
triggered.

I've been in contact with the author of the elision code in glibc and have
submitted this workaround to the Boehm GC list.  Until the bug is fixed or
worked-around upstream I'd like to fix it here so I can continue other work.

This is the simpler and more portable workaround suggested by Peter Wang.

boehm_gc/include/private/pthread_support.h:
boehm_gc/pthread_support.c:
    Define GC_setup_mark_lock()  This procedure creates the lock specifying a
    pthread_mutexattr_t structure.  This is used to disable lock elision on
    Linux with glibc 2.19.

boehm_gc/misc.c:
    Call GC_setup_mark_lock() when initialising the collector.