Temp state for merge;
Port some syscalls, stuck in fs/gs set;

(1) Disable cgo by setting the environment variable CGO_ENABLED;
(2) Port some syscalls, including:
signalstack (direct return),
exit (ported & untested),
exit1 (ported & untested),
sigreturn (direct return),
mmap (ported & untested),
munmap (ported & untested),
sem_init, sem_post, sem_wait, sem_free (ported & untested),
SysAlloc (ported & untested),
SysReserve (ported, which will not work on 64-bit machine),
SysMap (ported & untested),
lock, unlock, usemacquire (ported & untested),
notewakeup, notesleep (ported & untested),
goenvs (direct return);
(3) Current problem: gdt is shared in ucore-x64, which gains the
difficulty in building tls;
TLS complete.

Now the GDT has two more items: TLS1 & TLS2.
In ucore, we define fs & gs as TLS storage,
and the syscall sys_prctl() is used to change the base of fs/gs.
Simple hello world complete.

(1) Change the way of go's memory allocation: SysReserve now has no
effect;
(2) In ucore, argc and argv are passed through edi and rsi, which
differs from that in unix.  We have to manually push them in rt0;
(3) We no longer put 6.out in _initial since it painfully gains the size
of the repository;
(4) fs and gs are stored/restored during trap, and sys_prctl() would
change the trapframe in order to set fs/gs correctly.
Advanced hello world done.

(1) Bit 9 of cr4 is set to 1 so as to enable sse2;
(2) Basic modifications on package syscall;
(3) Basic implementation of sys_getpcstime: returns the precise time
with an error of 10ms;
(4) qemu is set to explicitly support sse2;
Multi-thread peter.go could now run successfully.

In ia-32e, the base address of fs and gs are stored in msr, with wrmsr
to set them.  Note that mov/pop into fs/gs will clear the higher 32
bits, so that we have to set fs/gs in set_tls(), before wrmsr.

Go implemented:
(1) clone new thread;
(2) semaphore relevant syscalls including sem_init, sem_post, sem_wait,
	sem_free;
Update tool chain: add some help info.
Add more generated files to .gitignore

Signed-off-by: Junjie Mao <eternal.n08@gmail.com>
Add a Makefile for coping with toplevel tools

Signed-off-by: Junjie Mao <eternal.n08@gmail.com>