sd-network: avoid false positive compiler warning caused by LTO

Djalal Harouni <tixxdz@opendz.org>:
There is also this one genrated by LTO, IMO it's a false positive since
we do *check* for "lease" but the code is not consistent since in that
code path, "lease" is initialized to NULL in other places, except for
this one:

src/resolve/resolved-manager.c: In function 'manager_update_resolv_conf':
src/libsystemd-network/sd-dhcp-lease.c:67:18: warning: 'lease' may be used uninitialized in this function [-Wmaybe-uninitialized]
        if (lease->dns_size) {
                 ^
src/network/sd-network.c:146:24: note: 'lease' was declared here
        sd_dhcp_lease *lease;
                       ^
shared: rename hwclock.[ch] to clock-util.[ch]
shared: add touch_file() and let touch() always update timestamp
timesyncd: only update stamp file when we are synchronized

Create initial stamp file with compiled-in time to prevent bootups
with clocks in the future from storing invalid timestamps.

At shutdown, only update the timestamp if we got an authoritative
time to store.
clock-util: clock_[sg]et_time() -> clock_[sg]et_hwclock()
timedated: refuse manual system time updates when automatic timesync is enabled
core: timer - switch to touch_file()
NEWS: prepare NEWS update for 213
detect-virt: Remove string for Microsoft virtualization detection in DMI vendor string array.

The string "Microsoft Corporation" is used in the Surface Tablet's DMI vendor ID.

https://bugs.freedesktop.org/show_bug.cgi?id=78312
NEWS: update
NEWS
man: reword StartupCPUShares= description

Now that we have two options described in the same paragraph, we cannot
use singular anymore.
build-sys: fix typo in variable name
NEWS: mention that systemd-analyze uses new kernel release info

Also some small grammar updates.
man: describe sd_uid_get_display
Fix several small typos
test-unit-file: skip if unit_file_get_list returns permission denied
Use %m instead of strerror(errno) where appropiate
path-util: fix missing terminating zero

There was this code:

        if (to_path_len > 0)
                memcpy(p, to_path, to_path_len);

That didn't add the terminating zero, so the resulting string was
corrupt if this code path was taken.

Using strcpy() instead of memcpy() solves this issue, and also
simplifies the code.

Previously there was special handling for shortening "../../" to
"../..", but that has now been replaced by a path_kill_slashes() call,
which also makes the result prettier in case the input contains
redundant slashes that would otherwise be copied to the result.
test-path-util: add tests for path_make_relative()