This is work in progress. Added user space support for LK. It contains following things.
1. Ring support (User space): Added Ring 3 support. Created GDT entries.
Added TSS for user space for interrupt handling.
2. User space loader: This is a toy user space loader. Created a separate
section for user space for user space code and data.
User space stack is currently static and does not reclaim it.
3. Syscall Support: User space to Kernel Space transitions are now supported.
Added 2 system calls (printf and thread_exit). Printf code is pretty much
replicated from kernel.