General moving to keep kernel object types separate from the direct kernel code. Also essentially a preliminary cleanup before eliminating global kernel state in the kernel code.
Now that HandleTable doesn't directly depend on WaitObject anymore, this can be separated from the main kernel.h header.