Modify marshalling (extern.c) to not mutate the heap.

Instead of the "trail", use an explicit hashtable of forwarding
pointers.
Represent bytecode pointers (return address and traps) as ints on stack.

Removes most of the out-of-heap pointers the interpreter uses by replacing
them with stack offsets.
Remove autogenerated .depend from git.
Fix indendation in intern.c
Make deserializing interruptible by GC. Breaks closure marshalling.

Register the intern stack, etc. as GC roots so that calling
caml_alloc or other functions that can do GC is safe during
unmarshalling.

Deserialization of closures is broken by this commit.
Replace caml_modify with caml_modify_field.

Also replace caml_initialize with caml_initialize_field. New versions
take the actual object as a parameter, rather than a pointer into the
middle of the object.
Rip out the GC.

Remove the allocator, GC, page table and compactor.

Breaks finalisers, closure marshalling, and presumably other stuff.
Weak references stubbed out (implemented as non-weak references).
Very basic shared heap code.
Hack configure to turn on pthreads but not systhreads.
Remove GC colors.
Basic STW collector.
Launch multiple threads and synchronize for STW GC.
Remove some global data by labelling some constants "const"
Change the API for global roots and callbacks to avoid raw pointers.

Global roots must now be of type caml_root, and use accessor
functions to read and write.

caml_named_value has become caml_get_named_value and no longer
returns a pointer.
Allocate minor heap(s) in aligned memory.
Change API for global roots (again!) to be threadsafe.

Global roots are now simpler in both interface and implementation.
Improve GC logging.

Print domain number in log message, get GCC printf warnings.
Remove caml_scan_roots_hook.

This feature is very difficult to use in a threadsafe manner. If
it has any users, something similar can be re-added later.
Remove caml_in_minor_collection.

When multiple threads do minor collections independently, the value
of this variable is unreliable at best.
Use a caml_root for the global variables in caml_global_data.