Add . to the load path when running tests.

I had previously been setting $GUILE_LOAD_PATH, but this is a bit nicer.
Tweak unit-testing infrastructure.

We now return an s-expression describing the failure, rather than a
string. This will make it easier to programmatically manipulate test
results.
Combine *->iol exports into one function.

This is a slightly nicer way of invoking the library, and it makes
writing the test-suite easier.
Add join-iol function.
Fix a bug, and write a test case.

We want to pass the function expr->iol, not the symbol.
Fix wrongly-matched parens in macro definition.

This was giving us one lambda with multiple let forms, but we want
multiple lambdas -- otherwise we end up only reporting the last test
result.
Fix wrong name in macro definition

This wasn't actually breaking anything; presumably guile doesn't
actually use the macro name in the pattern (it doesn't need to, after
all).
Add support for types/declaring variables.

Only a subset of types is supported thus far; more to come. There are
some tests, but they don't cover everything, and I'm sure much if it is
broken.