approx_distance: Improve accuracy of 2d and 3d funcs

Fine-tuning the approx-distance 2d function gives accuracy better
than 99.7% in all cases.  Extending this to the 3d version gives
it also accuracy better than 99% in all cases.  This is an
improvement on the old code which achieved accuracies better
than 95% in most cases.
Missing member variable for lookahead in DDA struct.