Don't allow negative boot numbers.

In the case where you typo the command line and do:

efibootmgr -b -a blah blah blah

instead of

efibootmgr -b 0001 -a blah blah blah

sscanf(..., "%X", &num) happily produces a successful return code and a
value of -10.  This later results in us creating a boot variable named
BootFFFFFFFF6 , which is clearly not okay.  So if we've got a negative
number there, it's probably not what the user wanted.

Bounds check the whole thing.

Signed-off-by: Peter Jones <pjones@redhat.com>