No longer including unistd_32.h or unistd_64.h. The kernel knows what to do

The kernel knows its configuration, and will pick the correct unistd.h
No longer assuming that syscall IDs start at 0

This is a valid assumption for x86, but not for many other arches (per-EABI ARM,
MIPS, etc).
presense of __NR_socketcall is now checked more directly

Previously we were looking at __x86_64__ to see if we had that system call. Now
I directly look at __NR_socketcall, which is more portable
generic __x86_64__ -> CONFIG_X86_64
Checks for split 64-bit syscall arguments are more portable

This is described in syscall(2). Some syscalls take 64-bit arguments. On
arches that have 64-bit registers, these arguments are shipped in a register.
On 32-bit arches, however, these are split between two consecutive registers,
with some alignment requirements. Some require an odd/even pair while some
others require even/odd. For now I assume they all do what x86_32 does, and
we can handle the rest when we port those.
syscall table no longer checks for x86_64. Looks at the individual syscalls

There were some __x86_64__ checks whose purpose wasn't entirely clear. Mostly I
THINK they were meant to separate the syscalls that existed on each
architecture, but this wasn't done perfectly: there were syscalls that existed,
but were masked out by the #ifdef. This patch removes the check for x86_64, and
checks each syscall for existence individually.

It may be a good idea to do this across the board for ALL the syscalls. The C
preprocessor can't quite do that I don't think, but we can generate the header
we want.