This way, the crates can be published without interfering with
potential future non-bindings `nix-` crates, if Nix proper wants to
have native rust code, for instance.
This allows cargo metadata to operate on it without adding the
source files to the build. (A choice which will save a few rebuilds
of the manual)
(cherry picked from commit 1779295f3e13cc15f8422d52a3753bb927ac8fa7)
See README. Most of this is in accordance with the bindgen introduction.
The c_headers function was taken from Zach Mitchell's work on bindings.
Co-authored-by: Zach Mitchell <zmitchell@fastmail.com>
(cherry picked from commit 83d8ae6b26d341bbd452a77d7361f58c06a2d322)