Revert "Single Stopping Distance Support"

This reverts commit 75c9f387cc47f947bba7aa097e169e5f4fd978f8.

Turns out this doesn't work. The location server updates when it
gets sensor readings, so sending the entire stopping distance at
the end doesn't make sense.

The previous model worked fine, so am going back to it.
Proper Path Following for Non-Reversing Paths

Fixes a whole bunch of issues with following paths:
  - Lookahed logic was just wrong.
  - Location server tracks direction and receives reverse updates.
  - Train controller uses direction to improve accuracy
  - Distance server no longer sends updates when dx = 0
  - Location server handles missed merges/branches due to bad
    distance server errors.