Add simple tests for threads and improve test dsl.

Test DSL additions:

- `assertion` method creates a assert_`topic` method using a lambda proc.
Handy for creating test-case-specific assertions.
- `let` renamed to `example`, which is a name that represents the intention of
the method more descriptively.