journal: allow files with no data whatsoever

If a file was opened for writing, and then closed immediately without
actually writing any entries, on subsequent opening, it would be
considered "corrupted". This should be totally fine, and even in
read mode, an empty file can become non-empty later on.
microhttp-util: rework gnutls logging
Move network-related journal programs to src/journal-remote/

Directory src/journal has become one of the largest directories,
and since systemd-journal-gatewayd, systemd-journal-remote, and
forthcoming systemd-journal-upload are all closely related, create
a separate directory for them.
build-sys: add check for libcurl
journal-remote: small fixes
journal-remote: reject fields above maximum size

Also fix an infinite loop on E2BIG.

Remember what range we already scanned for '\n', to avoid
quadratic behaviour on long "text" fields.
journal-upload: a tool to push messages to systemd-journal-remote
journal-upload: HTTPS support
journal-upload: use journal as the source
journal-upload: make state persistent
journal-upload: add watchdog support
journal-remote: add units and read certs from default locations
shared/socket-util: add function to query remote address
shared/socket-label: fix error message

Was: Failed to listen on [::]:2000: Success
Add simple generator of fake journal export stream
Allow addresses to be specified for --listen-... args

Hostnames still aren't accepted.
journal-remote: allow splitting incoming logs by source host

Previously existing scheme where the file name would be based on
the source was just too ugly and unpredicatable. Now there are
only two options:
  1. just one file (until rotation),
  2. one file per source host, using the hostname as filename part.
For the cases where the source is specified by the user, only
option one is allowed, and the full of the file must be specified.
Constify ConfigTableItem tables
Fix problem with allocating large buffers and log leftovers
journal-remote: improve some messages