Refactoring analytical engine
Adding a TrailEngine that store info differently than the
TrailPredictionEngine which uses a DirectedGraph as the backing store.