forEachSphereOnRay(ray, callback, scope) {
    return this._forEachMatchingSphere(ray.intersectsSphere.bind(ray), callback, scope)
  }
Given a {@link Ray}, search the octree for any spheres that intersect that ray and invoke
the given `callback` function, passing it the sphere and its key as arguments.
TODO need to handle near/far

@param {Ray} ray
@param {Function} callback
@param {Object} scope