Port MokManager to Linux Foundation loader UI code

This is the first stage of porting the MokManager UI to the UI code used
by the Linux Foundation UEFI loader.
simple_file: Allocate buffers for file entries

The dir filter appends L'/' to the directory entries without
allocating a new buffer, and this could crash the whole program.
Clean lib/, too
Make EFI_PATH easily resettable from the build command line.

Signed-off-by: Peter Jones <pjones@redhat.com>
MokManager: support crypt() password hash

The password format is introduced for the password hash generated by crypt(),
so that the user can import the password hash from /etc/shadow. The packager,
especially those who packages 3rd party drivers, can utilize this feature to
import a 3rd party certificate without interfering the package installation.

This commit implements the sha256-based crypt() hash function.

Conflicts:
	Makefile
	MokManager.c
MokManager: support SHA512-based crypt() hash
MokManager: support blowfish-based crypt() hash

Conflicts:
	Makefile
MokManager: support MD5-based crypt() hash
MokManager: support Tradition DES hash
Fix the broken bootpath

- The file path from DevicePathToStr may use slash as the file
  seperator. Change all slashes to backslashes to avoid the strange
  bootpath.
- Remove the redundant backslashes.
- ImagePath no longer requires the leading backslash.
- Fix a memory leak

Based on the patch from Michal Marek <mmarek@suse.com>
Remove double-separators from the bootpath
Define the PXE 2nd stage loader in the beginning of the file

Make it easier to change the PXE 2nd stage loader.

Conflicts:
	netboot.c
Since different distros name grub*.efi differently, make it compile-time.

Basically, if you don't want grub.efi, you do:

make 'DEFAULT_LOADER=\\\\grubx64.efi'

Signed-off-by: Peter Jones <pjones@redhat.com>
Correct the certificate count of the signature list
MokManager: Remove the unnecessary string duplication
MokManager: draw the countdown screen
MokManager: remove the duplicate get_keystroke()
MokManager: enhance the password prompt
Enable openssl bio_printf()

bio_printf() was replaced with a dummy function and this made
several openssl functions useless. This commit adds the print
functions back, so that we don't have to implement our own
ASN1 time print function.
Disable floating points in b_print

The long double declaration will enable SSE and cause a compilation
error. Disabling everything related to floating points avoids the
error.