bash-completion: journalctl query by binary and device

The approach taken is different between the two:
- since there are many files in /usr, but messages appear
  only for a tiny subset, the completion is performed
  only for stuff shown by journalctl -F _EXE. This makes
  sense because the list is already in proper form.
- since it is hard to convert _KERNEL_DEVICE to device
  file name, simply all files in /dev/ are used as possible
  completions.

Unfortunately zsh completion requires more work and is not
covered by this commit.
log-show: look at everything in /run/log/journal

Logs written by journald from the initramfs may be written to a
directory with the name created from a random machine-id. Afterwards,
when the root filesystem has been mounted and machine-id reinitalized,
logs will be written to the directory with a name created from the
proper machine-id. When logs are flushed to /var/log/journal,
everything is copied to one output directory.

When journalctl without '-m' is run after the logs have been flushed
to /var/log/journal, all messages are shown. However, when run while
logs are still in /run/log/journal, those stored under the random
machine-id will not be shown.

Make journalctl behave the same regardless whether persistent storage
has been enabled or not, and slurp all files from /run/log/journal
even without '-m'.