Description
Requiring ntpd or chrony to be setup correctly and configured correctly makes deployments more complicated.
We should include our own built-in stripped-down implementation of NTP without any reliance on kernel features. This should hopefully make it easier for users to configure NTP even if they don't have root, and also can maintain better clock error than the system implementation, since we can prioritize low error bounds rather than low jitter.
Additionally this simplifies docker deployments by not requiring CAP_SYS_TIME or privileged containers and ensuring host machines have ntpd setup correctly.