Include a number in the generated stub name to avoid clashes.

It's now easier to bind the same C function twice at different types.

Update tests to remove workarounds for name clashes.
Mark OCaml values as 'alloc', since references are boxed.

In practice, OCaml types can't be used as return types, so it doesn't
much matter whether they're marked as 'alloc'.
Tests for passing OCaml values directly to C.
Stub support for passing values directly to C.