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
WIP Make deserializing interruptible by GC.

Register the intern stack, etc. as GC roots so that calling
caml_alloc or other functions that can do GC is safe during
unmarshalling.
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).
WIP add shared heap code
WIP hack configure to turn on pthreads but not systhreads
remove colors
fixup! WIP add shared heap code
WIP basic STW collector
WIP launch multiple threads and synchronize for STW GC