dmesg: more deterministic boot time detection

This fixes an issue which made second in human readable time formats to
wiggle.  One would expect the two dmesg runs below would be identical,
but the half second sleep should almost always make some timestamps to
differ.

diff -q <(dmesg --ctime) <(sleep 0.5 ; dmesg --ctime)

Unfortunately this patch is not perfect.  The use of pid 1 directory
ctime is a bit off what kernel thinks is the start up time, which makes
the dmesg, journald, and kernel all to mutually disagree when system
started.  On my laptop the kernel consider start time to be 18:22:33, the
new dmesg 18:22:42, and journald 18:22:44.

In the heart of the problem is linux kernel that does not tell, in high
resolution accurancy, when start up happen.  I am almost sure the kernel
should log a message telling at boot, and at any time clock is skewed,
what time the kernel thinks it is.  A klog message such as 'kernel time
announcement: <epoc>.<milliseconds>' might solve most if not all
problems.

Signed-off-by: Sami Kerola <kerolasa@iki.fi>