Made it possible to build the bootloader when targetting x86_64.

* x86_64 is using the existing *_ia32 boot platforms.
* Special flags are required when compiling the loader to get GCC to compile
  32-bit code. This adds a new set of rules for compiling boot code rather
  than using the kernel rules, which compile using the necessary flags.
* Some x86_64 private headers have been stubbed by #include'ing the x86
  versions. These will be replaced later.
Merge branch 'master' into x86_64
Fixed copyright date on arch_config.h.
x86_64: added linker script for the kernel.

* Based on the x86 one, changes made to match the default GCC x86_64 linker
  script and correct kernel load address added.
* Not tested yet as the kernel doesn't fully compile.
Made *_addr_t {,un}signed long rather than long long on x86_64.

* long is 64-bit on x86_64.
* Makes addr_t compatible with size_t.
First round of 64-bit safety fixes in the kernel.

* Most of this is incorrect printf format strings. Changed all strings
  causing errors to use the B_PRI* format string definitions, which
  means the strings should be correct across all platforms.
* Some other fixes for errors, casts required, etc.
Added some x86_64 system/kernel headers and kernel Jamfiles.

* Not all of these headers are correct yet, just adding what's necessary
  to get things to compile for the time being.
Merge branch 'master' into x86_64
Changed ICI data argument types from uint32 to addr_t.

Since ICI arguments are used to send addresses in some places, uint32 is
not sufficient on x86_64. addr_t still refers to the same type as uint32
(unsigned long) on other platforms, so this change only really affects
x86_64.
Added gensyscalls headers for x86_64.
More 64-bit compilation/safety fixes.
Added a TODO in to say that {,u}int64 should be changed to long on x86_64.
Merge branch 'master' into x86_64
Implementations of some libroot functions for x86_64.

These are the functions required by the kernel. These are all full
implementations except for system_time(), which will be implemented later.
Add -mno-red-zone to the kernel CCFLAGS/C++FLAGS.

The red zone is a 128-byte area below the stack pointer specified by the
AMD64 ABI that can be used by leaf functions for their stack frame without
modifying the stack pointer. It is guaranteed not to be modified by signal
handlers. This cannot be used in kernel mode code, as an interrupt handler
could overwrite it, so stop GCC from generating code that uses it.
Fixed a mistake in 11d3892, changed a parameter type to addr_t that shouldn't have been changed.
Added stub versions of everything needed to build the kernel.

The whole kernel now builds and there are no undefined references when
linking, I just need to fix some strange relocation errors I'm getting
(probably a problem with the linker script) and then I'll have a kernel
image.
Fixed incorrect link address in kernel linker script.
Fixed bootloader build under x86_64.
Modified the floppy boot image target so that it can be used to build an x86_64 boot image.

* set_haiku_revision doesn't currently support ELF64, don't use a
  revisioned kernel image on x86_64 for now.
* Don't try to build add-ons for x86_64 yet.