Fix implicit declaration of GC_setup_mark_lock.

boehm_gc/misc.c:
	Include pthread_support.h for GC_setup_mark_lock,
	a Mercury-specific addition.
Enable thread-local allocation and parallel marking on more platforms.

The changes to the platforms that I am unable to test are based on the
boehm_gc/configure script.  If that script allows the features to be
enabled then I assume that the features are usable.

configure.ac:
	Enable parallel marking on Solaris (untested by me).

	Enable on Cygwin (untested by me).

	Enable on MinGW32 (tested).

	Enable on MinGW-w64 (tested with winpthreads, which requires some
	other changes).

	Enable on Darwin (tested by Julien).
Support building Boehm GC with Winpthreads.

Winpthreads is a pthreads implementation from the MinGW-w64 project,
different from pthreads-win32.  A similar patch to this should make its
way into Boehm GC upstream.  As we will not be upgrading Boehm GC on the
14.01 branch, apply this small change to our copy of the library for now.

boehm_gc/include/private/gc_locks.h:
	Winpthreads uses scalar thread IDs.

boehm_gc/win32_threads.c:
	Winpthread thread IDs should be practically unique but make the
	conservative assumption anyway.
Account for Winpthreads in configure.

configure.ac:
	Always build the par_gc library with GC_WIN32_PTHREADS when
	pthread.h is detected on MinGW* systems.  Previously, if the
	pthread implementation is not pthread-win32 we would fallback to
	building Boehm GC with GC_WIN32_THREADS (no "P"), so it would
	NOT provide pthread wrapper functions.  But since pthread.h was
	found, the Mercury implementation would make pthread calls, calls
	which are not intercepted by Boehm GC and thus unsafe.

	Change `--with-gc-pthreads-win32' to `--with-gc-win32-pthreads',
	to mean either of pthreads-win32 or winpthreads.
Fix configuration of thread support for MinGW-w64 32-bit target.

configure.ac:
	Relax a host pattern to cover MinGW-w64 x86 targets (i*86)
	in addition to x86_64.
Merge branch 'version-14_01-branch'