driver: Map hypervisor at fixed virtual address

First step to overcome relocation of the hypervisor and to stabilize its
configuration footprint after loading: We reserve a fixed virtual
address range from the kernel and simply map the hypervisor there. The
address is, of course, architecture specific, may even require
adjustments per target. But the advantages of having a stable
configuration in memory that can rather easily checked after setup and
the simplifications in the hypervisor code when it will always have the
same virtual address outweighs this.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
core: Fix output of hypervisor text start

Though we reduced the header size in dfe32d1ba6, the text segment is
still 16-byte aligned. Better introduce an explicit mark for the start
instead of relying on address calculations.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
core/driver: Switch hypervisor to fixed virtual address layout

Now that the driver always puts us at the same virtual address, we can
compile this into the hypervisor as well. On x86, we switch to the code
model "kernel", i.e. all virtual addresses have the higher 32 bits set.
This allows to drop -fpic and -fpie, the global offset table. And the
entry field in the header is now absolute.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
TODO: Update

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
driver: Rename source file

It's a single module, and it will likely stay such, so give it a more
specific name.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>