journal: fix skipping of duplicate entries in iteration

I accidentally broke the detection of duplicate entries in 7943f42275
"journal: optimize iteration by returning previously found candidate
entry".

When we have a known location of a candidate entry, we must not return
from next_beyond_location() immediately. We must go through the
duplicates detection to make sure the candidate differs from the
already iterated entry.

This fix slows down iteration a bit, but it's still faster than it
was before the rework.

$ time ./journalctl --since=2014-06-01 --until=2014-07-01 > /dev/null

real    0m4.448s
user    0m4.298s
sys     0m0.149s

(Compare with results from commit 7943f42275, where real was 5.3s before
the rework.)
journal: make next_with_matches() always use f->current_offset

next_with_matches() is odd in that its "unit64_t *offset" parameter is
both input and output. In other it's purely for output.

The function is called from two places in next_beyond_location(). In
both of them "&cp" is used as the argument and in both cases cp is
guaranteed to equal f->current_offset.

Let's just have next_with_matches() ignore "*offset" on input and
operate with f->current_offset.

I did not investigate why it is, but it makes my usual benchmark run
reproducibly faster:

$ time ./journalctl --since=2014-06-01 --until=2014-07-01 > /dev/null

real    0m4.032s
user    0m3.896s
sys     0m0.135s

(Compare to preceding commit, where real was 4.4s.)
journal: skipping of exhausted journal files is bad if direction changed

EOF is meaningless if the direction of iteration changes.
Move the EOF optimization under the direction check.

This fixes test-journal-interleaving for me.

Thanks to Filipe Brandenburger for telling me about the failure.
util: when creating temporary filename for atomic creation of files, add an extra "#" to the name

That way, we have a simple, somewhat reliable way to detect such
temporary files, by simply checking if they start with ".#".
machined/machinectl: add logic to show list of available images

This adds a new bus call to machined that enumerates /var/lib/container
and returns all trees stored in it, distuingishing three types:

        - GPT disk images, which are files suffixed with ".gpt"
        - directory trees
        - btrfs subvolumes
verbs: when invoking the default verb, pass a faked argv array, with just the verb in it

That way the dispatcher calls know how they got called.
import: Verb[] array can be static, too
machinectl: port machinectl to new verbs logic
update TODO
util: rename ignore_file() to hidden_file()

hidden_file() is a bit more precise, since dot files usually shouldn't
be ignored, but certainly be considered hidden.
sysv-generator: properly add Makefile symlink
machined: add new GetImage() bus call for retrieving the bus path for an image
machined: add a full bus object for images
update TODO
sd-lldp: minor header cleanup

 * (potentially) public headers must reside in src/systemd/ (not in
   src/libsystemd*)
 * some private (not prefixed with sd_) functions moved from sd-lldp.h to
   lldp-internal.h
 * introduce lldp-util.h for the cleanup macro, as these should not be public
 * rename the cleanup macro, we always name them _cleanup_foo_, never
   _cleanup_sd_foo_
 * mark some function arguments as 'const'
build: add option to disable hwdb

[tomegun: fix Makefile-man.am, based on fix from Michael Biebl]