physics-bh: implement a score-based hysteretic octree cleanup system

It's not a bad method to reduce calls to malloc(). We keep octrees around as long as there's need for them. My initial idea was to create an index of structs containing pointers to octrees and the timesteps it's been since an object's been in them. Then it'd be easy to make a more complex system for cleaning up. But this works just as well. Not to mention you can have the initial score as a function of the depth of the octree so that anything that's beneath a few levels down will have a shorter livetime. Speaking of depth, the glitch is still present. I did some testing and I think it depends on the position of a particle. We lockup the recursive function and malloc() the entire memory because something's in an awkward position. Anyway, will do some work on the output end of the program. XYZ is fine, but I'd probably write my own format which saves the entire state of the system. With the only reader being the program itself.