Add a basic detector

Initialize the MessageEndpoint with `latest` and as each new row comes in, update it. Then have a scheduled task check if the diff between `latest` and `now` exceeds a threshold.