32->64bit multiboot support

It appears most bootloaders still expect to start a 32bit protected mode image.
Qemu will refuse to even attempt to boot a 64bit multiboot wrapped ELF image.

This gets us from 32bit protected mode to IA-32e (oddly named) 64bit mode and
into the kernel.

- identity map the bottom 1GB of memory
- map the same 1GB at 0xFFFFFFFF80000000
- transfer control to kernel/main.c:main()