Change funptr's [release_runtime_lock] argument to [runtime_lock].

The [funptr] view can be used in either direction.  When [funptr] is
used to call C from OCaml, [runtime_lock] determines whether the lock
is released.  When [funptr] is used to call OCaml from C,
[runtime_lock] determines whether the lock is acquired.
Optionally acquire the runtime lock in the callback handler.
A test for the [runtime_lock] argument to [funptr].
Merge pull request #171 from yallop/funptr-acquire-lock

Support for acquiring the runtime lock in callbacks
fix: long != intnat
Merge pull request #177 from fdopen/master

fix: long != intnat
Move the cptr type from Static to Ctypes_raw.
Rename Ctypes_raw to Ctypes_ptr.
Turn Ctypes_ptr.cptr into an abstract type.
Rename Ctypes_ptr.PtrType to Ctypes_ptr.Raw.
Ctypes_bigarray.address ~> unsafe_address, and remove an unused parameter.
Eliminate (most) calls to unsafe_raw_addr.
Implement to_voidp and from_voidp in terms of castp; remove an unused cast.
Some comments on the inherent lack of safety of raw_address_of_ptr.
Merge pull request #175 from yallop/pointer-paranoia

Change the pointer representation to improve lifetime safety
Bring dependencies up to date.
Use nativeint, not int32/int64, to represent pointers.
Merge pull request #176 from yallop/nativeint-pointers

Use nativeint to represent pointers
More explicit selection of unthreaded binaries using predicate negation.
Introduce subpackages of 'foreign' for threaded and unthreaded cases.