Check and ignore invalid `VISIT_STARTED` transitions
Check and ignore invalid `VISIT_STARTED` transitions

Sometimes, we get a `VISIT_STARTED` within a second after a `VISIT_ENDED`.
Note that the `VISIT_ENDED` is actually delayed significantly although the
timestamp in the visit notification is fairly close. The notification was
generated 7 minutes after the geofence exit, which is itself generated a few
minutes after the actual trip start.

```
686,1597146582.0006099,2020-08-11T05:49:42.000610-06:00,Received platform-specific notification T_EXITED_GEOFENCE
715,1597147042.3582,2020-08-11T05:57:22.358200-06:00,"Received visit notification = <+39.73087073,-105.03116972> +/- 92.76m (2020-08-11 03:44:32 +0000 to 2020-08-11 11:50:19 +0000)"
724,1597147042.39379,2020-08-11T05:57:22.393790-06:00,"Received visit notification = <+39.72744342,-105.03121412> +/- 89.09m (2020-08-11 11:50:20 +0000 to -)"
```

In this fix, we detect whether the resulting `VISIT_STARTED` is invalid because
it is too close to a `VISIT_ENDED` and if so, we silently ignore the transition
and don't change the FSM state.

This is a potential fix for
https://github.com/e-mission/e-mission-docs/issues/372

e-mission/e-mission-data-collection,shankari/e-mission-data-collection,e-mission/e-mission-data-collection,shankari/e-mission-data-collection,e-mission/e-mission-data-collection,shankari/e-mission-data-collection