fix bugs in File.getParent and listFiles

getParent should return the same value regardless of whether it ends
in a file separator, and listFiles should return null for
non-directories.
add support for the ARM hardware floating point ABI

This ABI's calling convention passes arguments and returns results
using VFP registers, so we need to tweak vmNativeCall to match it.

Thanks to Damjan Jovanovic for pointing this out and providing an
initial patch.
fix allocate/free size mismatch in interpret.cpp

This was causing a crash every time the VM was run when build using
mode=debug and process=interpret.
revert debug code accidentally included in last commit
add JNI test to test suite
fix mixed marshalling of mixed float/double argument lists on armhf

When we skip a single-precision register to ensure a double-precision
load is aligned, we need to remember that in case we see another
single-precision argument later on, which we must backfill into that
register we skipped according to the ABI.
fix bad offset for SSE argument marshalling in x86.S
load arguments into the first 8 VFP registers, not the first 9
fix unused variable warning for non-hardfloat ARM systems
Revert "fix unused variable warning for non-hardfloat ARM systems"

This reverts commit 5270db52c7b2d92417160f6234a544d4c5a9c0fb.
fix unused variable warning for non-hardfloat ARM systems
revert accidentally-committed build-cc/build-cxx change
add support for FreeBSD
add support for FreeBSD on x86_64
fix "no newline at end of file" error on FreeBSD
clean up binary format code

Linux, FreeBSD, and QNX all use ELF, so no need to distinguish between
them when generating object files.  To avoid confusion, I've switch
from using operating system names to using binary format names where
applicable.
use so-prefix and so-suffix to generate test library name

This fixes the JNI test for Windows and OS X.
put test library in same directory as avian executable

This is a workaround for the fact that there's no precise equivalent
to LD_LIBRARY_PATH available on Windows.
tests don't compile when building with OpenJDK

I get this error when compiling with "make openjdk=...." on both x86_64 and
arm:

compiling test classes
test/Arrays.java:90: error: reference to equals is ambiguous, both method
equals(float[],float[]) in Arrays and method equals(Object[],Object[]) in
Arrays match
      expect(java.util.Arrays.equals(null, null));

test/Arrays.java:95: error: reference to hashCode is ambiguous, both method
hashCode(double[]) in Arrays and method hashCode(Object[]) in Arrays match
      java.util.Arrays.hashCode(null);

The attached patch fixes this.
fix java.library.path on the ARM platform

On the ARM platform, Avian compiled to use OpenJDK gets this error on
startup:
java/lang/UnsatisfiedLinkError: no zip in java.library.path
  at java/lang/ClassLoader.loadLibrary (line 1860)
  at java/lang/Runtime.loadLibrary0 (line 845)
  at java/lang/System.loadLibrary (line 1084)
  at java/lang/System.initializeSystemClass (line 1145)

Using strace shows why:
[pid 22431]
stat64("/usr/lib/jvm/java-7-openjdk-armhf/jre/lib/i386/libzip.so",
0xbee377e0) = -1 ENOENT (No such file or directory)

The attached patch uses "arm" instead of "i386" in that path. This fixes the
problem.