cpu: add cpu_has_sysenter(), the use_sysenter variable

It's obviously specific to x86 despite the naming.

The variable should be replaced with a static inline function that can have
two modes: constant according to compiletime kernel support (combined with
refusal to enter userspace on CPUs that haven't got SYSENTER), or dynamic (per
stored result of cpu_has_sysenter()). None of this is at all urgent however.
gdt, space: reorder the constant GDT entries

And replace a bare numeric reference to the kernel TSS segment with its
preprocessor symbol in space.c .
thread: add explicit allocation of TCR words -1 thru -3

This changeset also moves the UTCB self-pointer to -3 from -1, and names it
explicitly. There's room for two further words: they're used to return ECX and
EDX by means of the correct SYSEXIT epilogue.
kip, exception: add basic support for SYSENTER

All system calls, beside the soft SystemClock one, now occur with the SYSENTER
stubs when the feature is present in the host CPU. This chops about 120 cycles
off the benchmarked IPC paths[0] even when userspace is re-entered not with
SYSEXIT but IRET.

The Ipc/Lipc/ThreadSwitch SYSEXIT gets a separate changeset.

[0] under core2 KVM, as usual
sched: exit Ipc/Lipc/ThreadSwitch with SYSEXIT where available

There are two cases: switch_thread_u2u() for ThreadSwitch[0], which is
confirmed to occur three times in sched/yield_timeslice_test; and
switch_thread(), which goes from kth (e.g. the scheduler) to userspace via
sysexit where applicable[1].

The mechanism adds a TF_SYSCALL flag which is set whenever kernelspace is
entered with SYSENTER and the frame's %eip register is set to the appropriate
SYSEXIT epilogue, and cleared when the userspace context is returned to.

This changeset also includes some miscellaneous fixups to the sysenter branch,
such as removal of a redundant debug print in isr_exn_exregs_sc_bottom() and a
deduplication of the unimplemented MemoryControl syscall.

[0] and in the future, co-scheduled Ipc and Lipc
[1] i.e. when userspace didn't enter the kernel because of an interrupt
sched: make use of TF_SYSCALL slightly more rigorous

Coupla asserts and an explicit clearing of TF_SYSCALL also on non-SYSEXIT
switch to userspace.