build: create intermediate libraries of shared/nm-utils

Previously we would compile source files from shared/nm-utils
multiple times. That not only slows down compilation, but it makes it
confusing which project require exactly what.

Most of the files in shared/nm-utils are a mixed bag of utility
functions. Just build one libnm-utils-base library. Since the linker
will throw away unused parts, there is no problem that not every user
of libnm-utils-base need everything.

Also add libnm-utils-udev, which cannot be part of libnm-utils-base as
it has a dependency on libudev.
4 jobs for th/build-libnm-shared in 11 minutes and 15 seconds (queued for 1 second)