acpi: move some part of table initialization earlier

We would like to be able to use some ACPI-dependentant functionality earlier.
One example of that is hpet, that needs to consult some acpi tables and that is
run before acpi full initializatio. That particular case is already covered and
we provide the early_init function for that.

There is now another case: In order for poweroff() to work, we need the tables
to be actually loaded, as found out by Nadav. Those can also be moved inside
early_init.

After this patch, the functions:

    AcpiInitializeSubsystem(),
    AcpiReallocateRootTable(),
    and AcpiLoadTables().

are executed early. This is safe, because the part that really needs to come
after the APIC initialization is AcpiEnableSubsystem().

Reviewed-by: Nadav Har'El <nyh@cloudius-systems.com>
Signed-off-by: Glauber Costa <glommer@cloudius-systems.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
loader: power off when command line is invalid

Currently, in several cases when a bad command line is set in the image,
such as an empty command line (as in "make image=empty") or one with
invalid paramters (e.g., run.py -e "-a a"), we use abort(). abort() has two
annoying "features" - it hangs the VM forever, and shows an ugly stack
trace. Both are useful for a debugging - but it doesn't make sense to use
a debugger when just the command line is misconfigured - we just need to
print a message and power off the VM.

Calling osv::poweroff() in this early time during the boot is fine after
the previous patch which fixed osv::poweroff().

By the way, running a non-existant file (e.g., 'run.py -e a') already
had this correct behavior of powering off, not hanging.

Reviewed-by: Glauber Costa <glommer@cloudius-systems.com>
Signed-off-by: Nadav Har'El <nyh@cloudius-systems.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>