rpmostreepayload: Copy all subdirectories of /usr/lib/ostree-boot

Previously we were special casing extlinux/ and grub2/, but this
misses out on efi/.  To support rpmostreepayload + GRUB2 + EFI, we
need special handling here.  Any bootloaders installing files in /boot
instead of a subdirectory will then need to be special cased (or
"fixed").

Now in a perfect world, I'd have a time machine and we could go back
and have every bootloader install in a subdirectory /boot/data or
something.  But we basically can't change existing systems, which kind
of traps us into the current RPM-level layout forever, with rpm-ostree
postprocessing it.

(One could argue it's rpm-ostree's job to postprocess this so Anaconda
 wouldn't have to care.  Open to that.)
rpmostreepayload: Rework remote add handling

We really want the remote to be in /etc/ostree/remotes.d, so
that it can be easily manipulated post-install.

To do that unfortunately is a complex dance.
rpmostreepayload: Handle grub2+EFI layout

We previously assumed if /boot/grub2 exists it's in use, but we
actually need to check for /boot/grub2/grub.cfg, as on EFI the config
file is in /boot/EFI.
bootloader: Bridge efi_dir configuration earlier for rpmostreepayload

rpmostreepayload wants a stub bootloader configuration to be written,
then it updates it.  There is a bit of magic in the middle of
bootloader.py to bridge the install class' efi_dir to the bootloader
configuration - we just need to set this up before calling
writeBootLoaderFinal().

Otherwise the config ends up in BOOT, which doesn't work.