win32.S: Make calls to ffi_closure_SYSV_inner position-independent

Now that non-Windows platforms include win32.S, it needs to support
building as position-independent code.  This fixes one source of build
failures on target platforms that do not allow text relocations.
win32.S: Make the jump tables position-independent

Now that non-Windows platforms include win32.S, it needs to support
building as position-independent code.  This fixes build failures on
target platforms that do not allow text relocations.
win32.S: Use shifting for multiplication rather than repeated addition

The jump table code added a register to itself twice to multiply by 4;
shift the register left by 2 instead.
win32.S: Add handling for position-independent code on Darwin

Newer versions of Darwin generate the necessary stub functions
automatically and just need a call instruction, but accomodating older
versions as well requires adding the stub.
Avoid referencing undefined ABIs on 64-bit Windows builds

64-bit Windows does not have FFI_STDCALL, FFI_THISCALL, or FFI_FASTCALL.
Fix a warning on 64-bit Windows

When sizeof(size_t) != sizeof(unsigned), adding a size_t to cif->bytes
produces a "possible loss of data" warning.  However, the size_t in
question refers to the size of a single parameter.  Use a cast to avoid
the warning.
Always use configure to detect whether global symbols need underscores

64-bit Windows already used this check; make it universal, and use it in
place of an ifdef on X86_WIN32, to handle non-Windows platforms that use
the underscore, such as Darwin.
Compile win32.S on 32-bit Darwin as well
Compile win32.S on FreeBSD
Merge pull request #105 from joshtriplett/win32-relocations

[3.1 blocker] win32.S needs to handle relocations/GOT
Merge pull request #110 from joshtriplett/w64

Fix 64-bit Windows support
Merge pull request #106 from joshtriplett/darwin-award

[3.1 blocker] Update OS X build system to include win32.S on 32-bit
Merge pull request #108 from joshtriplett/freebsd

[3.1 blocker] Fix FreeBSD support
Update copyright date and clean up README notes.
Upgrade version to 3.1-rc1
Fix ABI on 32-bit non-Windows x86: go back to trampoline size 10

The trampoline size is part of the ABI, so it cannot change.  Move the
logic from the stdcall and thiscall trampolines to the functions they
call, to reduce them both to 10 bytes.

This drops the previously added support for raw THISCALL closures on
non-Windows.  (Non-raw THISCALL closures still work.)
Merge pull request #114 from joshtriplett/bounce-on-a-tiny-trampoline

Fix ABI on 32-bit non-Windows x86: go back to trampoline size 10
Add HSBuild project files and handle shared vs static use
Remove the multi-os-directory handling from the configure script

Does not interact nicely with the iOS toolchain.
Declare 32-bit .obj as SEH safe