Switches LineSurface to BigDecimal

This change swaps out Double with BigDecimal in the Point and Slope variables. Interestingly,
this made the Floor adjuster even MORE picky, because now we have more decimal information
but with the same problem of not being able to represent a point 100%. When comparing the
Mobile's Position with the Line's equation, there was only a one billionth difference, but
that still returned false.

The solution is to round these numbers to ~5 decimal places before comparing. This seems
to work well enough, but I'm still afraid that there's a loss of data with each iteration.
Now I understand how I could sometimes fall out of the map in Quake.