Use SUSE gnuefi path
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.
MokManager: support SHA512-based crypt() hash
MokManager: support blowfish-based crypt() hash
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.
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.
MokManager: rearrange the output of MOK info
MokManager: enhance the password prompt for SB state