Firmware API

Add a C++ API for probing information about platform firmware. On
x86-64, this information is obtained by probing SMBIOS. AARCH64 is
stubbed to just return "Unknown" for the time being.

This will be used by our cloud init to auto-detect when OSv is running
on Google Compute Engine.

Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
Hypervisor API

Add a C++ API for probing information about the hypervisor we run on.
Currently, KVM and Xen are detected and reported. Everything else just
reports an unknown hypervisor.

This will be used by cloud init to detect when we're running on GCE.

Reviewed-by: Nadav Har'El <nyh@cloudius-systems.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
cloud-init: Probe for data source only on EC2 and GCE

If OSv is not running on EC2 or GCE, probing slows down OSv boot. Please
note that the probing is not perfect: we still probe for data source on
non-EC2 Xen hypervisor but we can live with it for now.

Command line option "--force-probe" is also added to cloud-init to force
data source probing even if we haven't detected that we're running on
EC2 or GCE.

Reviewed-by: Nadav Har'El <nyh@cloudius-systems.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
config.json: Enable cloud init by default

Now that we no longer probe for cloud data source on local KVM, turn on
cloud init by default.

Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>