Milestone: First vmx hypervisor.

Now the vmx hypervisor can partly print "Hello World", except that
there is a bug in SMP spin_lock when printf.

In this version, spin_lock & spin_unlock in function puts()
(lib/x86/io.c) is commented. If not do so vm will block when
executing
	asm volatile ("xchg %1, %0" : "+m"(lock->v), "+r"(v));
in spin_lock().

I simply put a "vmcall" after this line and the VM actually reaches
the vmcall and then runs well. I cannot get the reason.

Arthur