x86: Do not hardcode <jailhouse/config.h> anymore

In preparation to the build system update, <jailhouse/config.h> was
pulled back from the version control, and not explicitly referenced
in any of Jailhouse sources anymore.
makefiles: Build jailhouse-{amd,intel} together

This build system update brings an ability to build 'jailhouse.bin'
firmware for different architecture "variants" (currently, AMD and
Intel on x86_64) simultaneously. Corresponding firmware files are
called 'jailhouse-$variant.bin'.

Variants are configured in hypervisor/Makefile: BUILD_VARIANTS store
their names, and jailhouse-$variant_DEFS should contain macro
definitions needed to configure sources properly.

ARM port should remain unaffected by these changes, however,
regressions were not tested.
driver: Support "variants" in firmware name

Jailhouse loader was updated to locate and load correct firmware
binary depending on a type of the system hyperviosr executes on.
x86: Prepare for link-time decisions on AMD-V/VMX

These changes preapre the x86 codebase for link-time decisions on
using AMD-V or VMX implementations for variant-dependent functions.
Since they are built on previous work, modifications to existing
upstream (VMX) code and current AMD-V code are made in a single commit.

NMI must be treated differently for AMD-V and SVM, so apic_nmi_handler()
was deleted and {vmx,svm}_nmi_handler() was introduced. On the contrary,
set_cs() can be made generic, so #ifdef can be removed safely.
x86: Link-time decision support for VMX code

Implemented link-time decision support for upstream code (i.e. VMX and
arch-specific setup and control routines). 'vm_' prefix was changed to
'vcpu_', and some public functions were renamed to maintain readability
(and sense).

This commit temporarily breaks AMD-V support.
x86: Link-time decision support for AMD-V code

This commit fixes AMD-V code broken by the previous one.
Also fixed copyright headers.
x86: Put VMCB/VMCS definitions in dedicated files

Resolve potential circular dependency between percpu.h and
svm.h/vmx.h by moving VMCB/VMCS definitions into their own
files. As for now, svm.h and vmx.h don't contain function
definitions, and circular dependency is resolved automatically,
but without this split it can be re-introduced easily.
x86: Streamlined entry.S

Introduced two macros to reduce code duplication and reorganized
vm_exit to improve readability (hopefully).