split up `side` method into `side` and `margin`
normalize vectors for the hyperplane
new algo for finding closest points, should be slightly faster for fewer trees