The kboot bootloader has been broken since the clang transition, due to it
using GCC specific features like explicit register variables.
Write an actual startup routine that properly calls into main() using a
Linux initial stack.
This also fixes the environment, which was previously broken.