Add remote-test capability, add unit test framework

From the commit:

    To execute tests on a remote host (for instance, because you're cross-compiling),
    simply do:
    
    make remote-test=true remote-test-host=<host_to_test_on> test
    
    You can set several variables to control the functionality of remote-test.
    See them below, along with their default values:
    
    remote-test-host = localhost # host to ssh to
    remote-test-port = 22
    remote-test-user = ${USER} # user to execute tests as
    remote-test-dir = /tmp/avian-test-${USER} # dir to rsync build output to

I also added a simple c++ unit-test framework, for testing individual pieces of the VM internals, and a couple simple tests.

"make test" works on [linux, windows, darwin]x[x86, x86_64], and "make test remote-test=true" works from [linux, darwin]x[x86_64] to [linux]x\[x86_64, powerpc, arm]  (where []x[] denotes a cross-product).