Location Server Tracks Reverses Properly

The location server now uses track_edges to monitor
its location. This simplifes the tracking code and allows
us to track reverses properly. It now recevieves updates
when a train reverses to accomplish this.

It relies on an accurate knowledge of the switch states now,
but this will be fixed once we add error handling.