Hopefully this pickVoxel function will fulfil most most need with
raycasting which aren't covered by the existing raycast functions.
It's essentially a wrapper around the current functions, using a custom
functor to store the position of a solid voxel as well as the previous
empty voxel. It doesn't require the user to provide a functor of their own,
just the value that they've assigned to empty voxels.
As well as the function itself, we also have a unit test as well as it
being built in the bindings.