acpi: add first ACPI table scanner

It explores those tables that're passed by the Bochs BIOS, with the exception
of the bytecode-bearing ones. For now, the goal is to scan enough to discover
the number of CPUs (though we'll only expose one via the KIP), the I/O APIC
configuration, the HPET's details, and frequency information for
ProcessorControl, KIP, and RDTSC-based timing.

These bits will be exported in <ukernel/acpi.h>, added in this changeset.

Additionally the ACPI tables should be scanned thoroughly enough to reserve
all ACPI memory for the OS personality, and mark it as special so it doesn't
get used as regular memory.
acpi: copy tables from physical RAM

This moves the acpi_init() call after init_spaces() in kmain(), which is
required by malloc() via sbrk().
testbench: thread: refine the api test case

And change the suite constructor to the new, better form. This caught a bug
where ThreadControl doesn't require dest == spacespec to create a new space,
and provoked an assert() in thread_halt() when it's applied to pre-activation
threads.
thread: permit pre-activation @t in thread_halt()

This'll still work, however, the thread loses its pre-activation status
(implied by TS_STOPPED and !TF_HALT). That shouldn't break any tests, however.
thread: reject space creation when spacespec != dest_tid
add UtcbAreaInfo accessors to <l4/kip.h>

And use them in the basic ThreadControl test.
acpi: apply post-devel cleanups

For the time being, anyway. There are many, many more things that ACPI can
tell us, but there's no use case for, say, executing the bytecode programs as
of yet.