linker-table: add sections.h and port all code to v2 RFC linker table

This adds the sections.h file to allow easy association of
custom sections to standard ELF / Linux sections. It also
goes ahead and ports over all of the existing old .tbl
linker table code to the new linker table format. In order
to do this, we try to keep the code to match as much as
possible with the RFC v2 submission made [0]. Just for
references, you can review the discussion of the RFC v1
series as well [1].

Other relevant changes:

* It drops documentation in favor of that being done upstream,
  this removes the clutter while we just work on the proof
  of concept code. If this gets upstream then we'll just sync
  the tables.h from upstream to this tree. For now this is just
  a bit of a pain in the ass in between submissions.

* Extends pci.c with an example using LINKTABLE_FOR_EACH()
  and also LINKTABLE_RUN_ALL().

* Extends include/linux/kernel.h with things we need to make
  tables.h compile in userspace -- these are things we don't need.

Expected output:

$./main
Initializing x86 bare metal world
Number of init entries: 7
Initializing kasan ...
Early init for Kasan...
Completed initializing kasan !
Initializing memory ...
Completed initializing memory !
Initializing pci ...
PCI fixup size: 1
Demo: Using LINKTABLE_FOR_EACH
foo_fixup
Demo: Using LINKTABLE_RUN_ALL
foo_fixup
Completed initializing pci !
Initializing beta ...
Completed initializing beta !
Initializing alpha ...
Completed initializing alpha !
Initializing acme ...
Completed initializing acme !
Booting bare metal
Calling start_kernel()...
Running setup_arch for kasan ...
Calling setup_arch work for Kasan...

$ ./main -x
Initializing Xen guest
Number of init entries: 7
Initializing memory ...
Completed initializing memory !
Initializing pci ...
PCI fixup size: 1
Demo: Using LINKTABLE_FOR_EACH
foo_fixup
Demo: Using LINKTABLE_RUN_ALL
foo_fixup
Completed initializing pci !
Initializing xen_driver ...
Completed initializing xen_driver !
Booting a Xen guest
Calling start_kernel()..

[0] http://lkml.kernel.org/r/1455889559-9428-1-git-send-email-mcgrof@kernel.org
[1] http://1450217797-19295-1-git-send-email-mcgrof@do-not-panic.com

Signed-off-by: Luis R. Rodriguez <mcgrof@kernel.org>
11 files changed