Modified EFIreboot CLI  https://github.com/black3r/efireboot
sets boot device from working OS

Compiles OK using MINGW https://sourceforge.net/projects/mingw-w64/files/

Mods to original efireboot to compile under mingw:

- GetFirmwareType not implemented in mingw32 x86 libkernel32.a - load it dynamically.
  it is implemented statically !!!only in libkernel32.a in MSYS2 mingw64!!!
- need to compile with -D_WIN32_WINNT=0x0602 in CFLAGS as
  GetFirmwareType is declared in i686-w64-mingw32\include\winbase.h
  only if  _WIN32_WINNT >= 0x0602
- #include <stdio.h> for exit function 
- printf with %ws will print "%ws" instead of error message in Russian
- commented out extern "C" in efi.h, reboot.h or else unmangled function names
  like _do_reboot could not be found by linker
- Patched boot_entry_name function in efi-windows.c to correctly construct
  boot entry vars e.g. Boot000F (last 4 symbols must be uppercase) !!!
- created Makefile


Algorithm

    efi_init()
       checks GetFirmwareType for UEFI and admin privileges
       checks if UEFI variables are present
    reboot_init()
       obtains shutdown privileges
    boot_entry_list(&data) 
       reads BootOrder UEFI variable, returns number of entries 
       (for variable length 10 bytes returns 5, read_efi_variable divides by 2 
        to account for Unicode)  0000 0F00 0120 0220 0320
    For all boot entries
      boot_entry_name 
        Constructs boot entry var name
           Boot entry variables are called  Boot{XXXX} e.g. 
               for entry 0F00 it will be Boot000F
               for entry 0120 it will be Boot2001
        Reads boot entry var and returns 64 chars of its name
      print as a menu
    Reads user input - boot entry number
    set_boot_next
      Sets selected entry number into variable "BootNext"
    do_reboot
