RMCALL: add prefix to real mode interrupt functions + rename

rename BIOSinterruptcall to i386_real_interrupt_call
i386: function for converting 32-bit address to real mode pointer elements - segment and offset
VBE_RM: VBE functions with buffer uses segment:offset now instead of just offset

buffer position does not need to be in the first 64kB of memory now
GDT: zero segment_descriptors struct before using

this way the struct can't contain random values, if some parts
of the struct are not assigned any value
RMCALL: make inline assembler more readable by naming operands
RMCALL: make inline assembler more readable by defining offsets to memory

structure that shows layout of registers and spots for backup values is
never used now, it is here just for the layout to be obvious immediately
RMCALL: move idtr loading to .code32

used instructions are shorter and coppied code for executing interrupt
is shorter
RMCALL: estabilsh stack early in real mode

this way stack can be used to easily set parameters
RMCALL: pass and retrieve DS correctly

If DS which is passed is not zero (in this implementation), further code
does not acquire correct values because it directly depend on DS, therefore
DS must be prepared in the moment when all data related moves are done.

On return from interrupt we first set DS, so that we can access correct
data memory. Setting DS involve first storing returned DS on stack to
be able to put it later to returned values and loading 0 to DS (now both
the code and the data are in first 64kB of memory).
Register esi for storing all registers values was replaced by eax, just
because we already have eax stored on the stack (we are sing ax to set DS).
RMCALL: remove redundant jump

there two jumps can be united into single one, lmjp is immediately used to
load real mode like code descriptor pointed to by rml_data_sel selector
RMCALL: separate values backup-able in protected mode

This further decreases amount of memory below 64kB used. Also it is (as
other steps) preparation for making the code relocatable in memory
below 1MB.
RMCALL: modify jumps to be indirect

this way there is no need to overwrite code for changing jump target
the target is settable in the c structs
RMCALL: don't modify esi, because it is further used

Now BKP_IDTR_LIM is zero, so it does not matter, but if it had to be changed
ever, than this would become a problem, the esi register is used as base
for jump to real mode like code segment, if esi was modified it would not
load correct selector:offset.
RMCALL: use the same data structure after interrupt like before it

by data struct is meant regs_spot which also depends on DS
RMCALL: prepare values for protected mode before entering it in the registers

there is no need to load regs_spot explicitly again
FB_VESA: compile warning fix

warning: no previous prototype for 'vesa_realmode_bootup_init'
This function is only called from assembler ('start.S' now) to switch
graphical mode and to initialize framebuffer.