Add tests

This PR does a few things. It:

- replaces the deprecated `assertEquals` with `assertEqual`.
- uses `assertRaises` to make `test_with_exception` shorter and more readable.
- adds 2 tests to show that a function decorated with `echo(n)` allows no more and no less than `n` failures.
- adds a helper function to facilitate those new tests.

Unfortunately, this PR depends on #1. That PR accounts for the changed `import` statements.