Refactor SMART processing engine
- We no longer call out to Redis for reference data we can compile into the binary and version control instead.
- The engine now supports multiple SMART operations per berth step, fixing problems around certain junctions and stations.
- We now support the E operation type.
- Intermediate junctions and such now have a 'platform' of 'up/down from/to-line'.
- Display of station history has changed incidentally:
- we no longer show "at" in the history outline, especially since it looks weird for junctions
- the display of passing location has been altered
Fixes #47 (closed) and fixes #20 (closed).