Breaking changes, sorry. Also remade the SceneTools hierarchy test to
not be that much redundant -- the name- and ID-based overloads can be
tested together.
These don't copy the data but rather reference the original with
different metadata. That caused use-after-free originally (if the input
variable got deleted or overwritten), the previous commit made it
assert (which was the intention there). Now it works properly.
Pybind changed py::module to py::module_ in order to support C++
modules, adapting to that change. It still builds on older versions,
but we're using only the new APIs.
That makes it much easier to handle in that case (because that's the
whole point of static builds) and also nicely circumvents any issues
with duplicated global data when a static lib would be linked to
multiple dynamic libraries.
Only the double ones, exposed as floats, because the extra ALU required
by doubles is negligible to function call overhead. It'll be different
for non-scalar types, but here I use this.