k-d Tree Construction
If there is just one point, form a leaf with that point.
Otherwise, divide the points in half by a line perpendicular to one of the axes.
Recursively construct k-d trees for the two sets of points.
Division strategies
- divide points perpendicular to the axis with widest spread.
- divide in a round-robin fashion.