Move libffi backend entirely within the foreign subpackage

The [`funptr`](https://github.com/yallop/ocaml-ctypes/blob/df10e1729f9fec9983f68252b15d6e89016fe33e/src/foreign.mli#L20) and [`funptr_opt`](https://github.com/yallop/ocaml-ctypes/blob/df10e1729f9fec9983f68252b15d6e89016fe33e/src/foreign.mli#L29) views now live in `Foreign` (df10e17).

Checks for which types can be used as argument or return types now distinguish between what's valid in C and what's supported by libffi (038420b).