bsd-user: add shims for process related system calls

This change adds support for process related system calls including fork calls,
execve calls, wait4(2), getuid(2), etc. It also adds a feature to check the
target binary before exec'ing to see if it should run native or under emulation.
This can be useful when there is not kernel support for something like
binfmt_misc as in Linux.  libprocstat is added to the libraries in configure to
support this.
bsd-user: add shims for socket related system calls

This change adds support for socket related system calls including socket,
bind, accept, getsockopt, setsocketopt, etc. Like the other changes to add
shims for system calls some are FreeBSD dependent.  These shims are defined
in freebsd/os-socket.h.  Stubs to emulate these on other *BSDs are included
in *bsd/os-socket.h.
bsd-user: add shims for stat and file handle related syscalls

This change adds support for status, file handle, and fcntl related system
calls including stat(), statfs(), fhstatfs(), fcntl() and the many variants.
bsd-user: add shims for thread related system calls

This change adds support for thread and user mutex related system call shims.
Much of this change is FreeBSD dependent.  Also, the thread start up code is
architecture dependent and is only included for mips/mips64 for now. Stubs
were added for the other architectures.
bsd-user: add shim for the ioctl system call

This change adds support for the ioctl(2) system call emulation.  In addtion,
it adds definitions and support for the FreeBSD tty(4) and file io ioctl's.
bsd-user: add shims for sysarch() and sysctl() system calls

This change adds support for sysarch() and sysctl() system call emulation.
sysarch() is both architecture and OS dependent.  Therefore this change
adds a handler for each architecture.  sysctl() has a lot special cases that
have to each decoded and handled individually.
bsd-user: add shims for extended attributes system calls

This change adds support for the extended attribute and access control list
system calls. While NetBSD has the same extended attribute system calls it
is unclear if OpenBSD does.  Therefore, this calls were added as FreeBSD-only.
bsd-user: add miscellaneous system call shims

This change add System V semaphores/messages, uuid, FreeBSD cpu
scheduling/affinity management, and other miscellaneous system call shims. A
lot of these other system call shims are stubs for maybe future work.
bsd-user: add more strace formating

This change add more strace formating for popular system calls.  It also
separates out *BSD and architecture dependent code.  In addition, it
changes TARGET_OS in configure (and in the associated makefiles) to
what it should really be: HOST_OS.
bsd-user: add arm cpu support

This change adds support for the arm cpu target.  In addition, it moves the
cpu dependent code out of main.c into the individual architecture directories
and cleans up main.c in general. Credit for much of this code: Olivier Houchard.