Add unit tests using boost test

Added UnitTests for a few classes, as well as fixing some minor bugs and cleaning up a little bit in the process.
Okay, this problem is a little bit more complex. I added another regression test for the bug.
The test data has the following setup:

http://execfoo.de/static/rtree_bug.html (click to expand the nodes)

So only two leaves with a gap in the middle. If you query something slightly right of the middle of the gap, the left leaf will be pruned because the min_dist computed by GetMinDist is used in line 566 for the prune upward check.

The debugging output of LocateClosestEndPointForCoordinate:

Input: 20, 55.1
Canidate 0: min_dist 0
Prune: down: 0 upward: 0
Adding canidate 2
Adding canidate 1
Canidate 1: min_dist 4.69288e+06
Prune: down: 0 upward: 0
Loading leaf 1
Checking 6 / 7
New min u: 40, 100 -> 4.86354e+06
Checking 8 / 9
Canidate 2: min_dist 4.88068e+06
Prune: down: 0 upward: 1
Correct: 4.71379e+06 RTree: 4.86354e+06

For some reason this still fails in this case, because ComputePerpendicularDistance is bigger than anticipated. (it should be exactly the distance to the closed point as it lies on the border of the bounding box).