grub: Add EFI support.

Fixes #110.

This is based on Daniel Hillenbrand's submissions, but it makes the same
adjustments already done in the bootloader module that's already merged:

* Put detect_firmware_type into the grub module itself until a better
  place is found.

* Get the distribution name from the branding configuration and use the
  file_name_sanitizer on it.

* Get the grub-install executable name from the module configuration.

It also fixes a Python syntax error in the original submission.
grub/test.yaml: Define the shortProductName.
Move detect_firmware_type to the prepare module.

This avoids the duplication between the bootloader and grub modules.
Merge pull request #175 from codeworkx/master

localecfg: only restore locale.gen.bak if available
Merge pull request #176 from codeworkx/master

packages: add --noconfirm arg for pacman, also remove unneeded deps
Fix syntax error

This fixes e65d9c4f. Setting a variable can't end with :
This also fixes the issue with referenced before assignment
[umount] use lazy switch

in some rare cases you can't unmount your mountpoints. As it is the last step we can use lazy switch to force unmounting.
mount: Fix /run mount.

It turns out that I had messed this up. Issue #173 was addressed anyway
by the followup fix to unpackfs to only exclude the directories that are
actually mounted (which does work), but with this fix, /run is now
handled as intended.

PS: Should the mount job not check the return value of
libcalamares.utils.mount instead of failing silently?
Automatic merge of Transifex translations
displaymanager: Fix typos in displaymanager.conf.
displaymanager: Add my copyright to main.py.

I have already written a bunch of code in there.
displaymanager: Don't error if a DM is not installed.

If a display manager is in the list, but not installed, do not return an
error message, but only print a debugging message and proceed.

This allows distributions that support multiple display managers to list
them all, independently of what the concrete live image will be using.
displaymanager: Remove lightdm gdmflexiserver hack.

Remove the hack that symlinks /usr/lib/lightdm/lightdm/gdmflexiserver as
/usr/bin/gdmflexiserver.

Upstream LightDM removed their gdmflexiserver implementation in 1.9.4 in
2013:
http://bazaar.launchpad.net/~lightdm-team/lightdm/trunk/revision/1841

In addition, LightDM was already adding the path containing its
gdmflexiserver implementation to PATH, so there was no use symlinking it
into /usr/bin, potentially overwriting the original version from GDM.
This must have been a workaround for an ancient LightDM version that
didn't even do that.

And finally, the hardcoded /usr/lib/lightdm/lightdm/gdmflexiserver path
was wrong on Fedora to begin with (we had used
/usr/libexec/lightdm/gdmflexiserver, but now the file is completely gone
because upstream removed it).
Automatic merge of Transifex translations
displaymanager: Fix default session setup for GDM.

The default session setting in GDM is per user. Therefore, it is not of
much use to set it for the gdm user. (Nobody will log in as "gdm".)
Unfortunately, there seems to be no systemwide setting for the default
session, the AccountsService provides no such setting, and GDM just
hardcodes the fallback to use if it is not set in the AccountsService.
(GDM first tries "gnome", and if that is not available, it picks the
first session in the alphabet.)

Therefore, the best we can do right now is to set the default session
for the autoLoginUser. This is the case where it matters the most
anyway. We would also need the username of a non-autologin user in the
global storage to do any better.
displaymanager: Use libcalamares.utils.debug instead of print.

Use libcalamares.utils.debug instead of print to output a debugging
message during SDDM autologin setup.
displaymanager: Disable basic setup by default.

Add a "basicSetup" boolean setting and default to leaving this kind of
setup operations to the distribution packages (i.e., to
"basicSetup: false").
displaymanager: Fix the use of getent in the basic setup.

This also matches what the original shell script from Manjaro did.
displaymanager: Don't run xdg-icon-resource and update-desktop-database.

Don't run xdg-icon-resource and update-desktop-database in the basic
setup for KDM. These tools have absolutely nothing to do with KDM. KDM
does not ship any icons in the hicolor theme, nor a .desktop file (let
alone one that handles any MIME type, the only case in which
update-desktop-database is needed).

I know the original shell script from Manjaro called these when setting
up KDM, but this is really the wrong place. If you need to call these,
they need to go into another module, and you also have to call them
independently of the selected display manager.
displaymanager: Make the settings follow the naming convention.

Make the defaultDesktopEnvironment and desktopFile settings in
displaymanager.conf follow the naming convention used in the other .conf
files.