Save the result of CTYPES_FROM_PTR in CAMLlocalN-bound variables.

Pointers are heap-allocated nowadays.
Add interface files for the internal Primitives and Static modules.
Expose constructor names in Cstubs_internals.
A value-oriented stub-generation interface based around 'foreign'.

The idea is to make both the generator and the generated code
instances of the following interface

  sig
    type _ fn
    val foreign : string -> 'a Ctypes.fn -> 'a fn
  end

For the generator `fn' is defined as unit, since the implementation of
`foreign' writes out the code for a function rather than returning
one.  The generated code has `type 'a fn = 'a`, and `foreign' resolves
the name and type of the function to the instance written in the
generation stage.

The old interface is gone, along with the need to register paths for
views and structured types.
Views and structured types no longer need an identity.

This reverts commit 76f215d88298140c8163c52710906ffe158b3da7.
Update the tests to use the new stub generation interface.
Bring examples up to date with the new cstubs interface.
Install cmi files for the (internal) Static and Primitives modules.
Merge pull request #129 from yallop/stubs-with-linking

High-level stub generation interface
constructor_cident_of_prim now takes an optional module name.
Rename Cstubs_generate_ml.fn to Cstubs_generate_ml.extern.
Use abbreviated module names in generated code.
Only fully-qualify the first field name of each record pattern.
Improve indentation for generated `external` bindings.
Merge pull request #137 from yallop/stubs-abbrev

Improve formatting of generated ML
Add [string_of_ptr] for building strings from an address and length.
Add tests for [string_from_ptr].
Merge pull request #139 from yallop/string_from_ptr

Add a function for creating a string from an address and length
Conditionally compile RTLD_NODELETE and RTLD_NOLOAD

These are not available on OpenBSD
Merge pull request #140 from avsm/rtld-options

Conditionally compile RTLD_NODELETE and RTLD_NOLOAD