kcms/time: Modernize and cleanup code
The time KCM backend code is quite old and is somewhat buggy because toggling any option causes all fields to update. I cleaned up the code and isolated different options from each other, and ensured the QML UI bindings stay up to date. I also moved the date popup to a loader so that it isn't loaded at start.
Related to #421 (closed)